
问题是小部件的边框(eclipse中的蓝色矩形)和小部件的内容/图形之间的距离因小部件而异(比如TextVIEw和button).
我可以通过为TextVIEw指定左边距或通过减少按钮容器的左边距来应用变通方法.但我正在寻找更清洁的解决方案.我无法找到任何控制小部件边框和内容之间差异的属性.
关于如何控制这个差距的任何指示?
显示问题的快照如下.这是我用于此问题的布局XML: –
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:orIEntation="vertical" > <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Hello World" /> <button androID:ID="@+ID/button1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Dummy button" /></linearLayout>
下图显示了虚拟应用程序的快照.请注意“Hello World”TextVIEw和“Dummy button”的左侧边距之间的差异.
第二张图显示了在Eclipse中选择时的按钮小部件.蓝色矩形表示小部件边界/边框.某些属性可以控制按钮边框(蓝色矩形)和内容(灰色矩形)之间的区别吗?
解决方法 这是一个艰难的TextVIEw和其他AndroID小部件可能有自己的一些内在风格(AndroID版本依赖).因此,为了解决这个问题,你必须创建自己的风格.
在创建自己的样式时,请始终引用此主题的androID源代码:
https://github.com/android/platform_frameworks_base/tree/master/core/res/res/values
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml
有多种方法可以创建自己的风格.
一种方法是在您的清单中主题化您的活动.
首先,在/ values /文件夹中需要一个styles.xml文件.
在这里你会宣布你的新风格:
<style name="theme.Mytheme.Dark" parent="@androID:style/theme.NoTitlebar"> <item name="androID:textVIEwStyle">@style/Widget.TextVIEw.Black</item></style><style name="theme.Mytheme.light" parent="@androID:style/theme.NoTitlebar"> <item name="androID:textVIEwStyle">@style/Widget.TextVIEw.White</item></style>
它上面的样式继承了隐藏标题栏的AndroID风格,你可以继承其他东西.
在这个主题中,我们覆盖textVIEwStyle,这允许我们为TextVIEw设置自定义值并覆盖一些内在值.
<style name="Widget.TextVIEw.White" parent="@androID:style/Widget.TextVIEw"> <item name="androID:textcolor">#FFFFFF</item></style><style name="Widget.TextVIEw.Black" parent="@androID:style/Widget.TextVIEw"> <item name="androID:textcolor">#000000</item></style>
最后,您将在AndroIDManifest.xml中主题化您的活动:
<activity androID:name=".ui.phone.FirstActivity" androID:theme="@style/theme.Mytheme.Dark" /> <activity androID:name=".ui.phone.SecondActivity" androID:theme="@style/theme.Mytheme.light" />
现在,当你在FirstActivity中使用TextVIEw时,它的文本默认为黑色,而在第二个活动中它将是白色.
针对您的具体问题:
你必须查看我在顶部链接的源代码文件,看看是否有任何填充或minWIDth或大小属性影响你的小部件和你的布局.
总结以上是内存溢出为你收集整理的Android UI小部件垂直对齐问题全部内容,希望文章能够帮你解决Android UI小部件垂直对齐问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)