Android UI小部件垂直对齐问题

Android UI小部件垂直对齐问题,第1张

概述我正在尝试创建一个布局(使用 eclipse),我需要垂直对齐各种控件,如TextView和Button.我试图保持所有小部件完全左对齐.即使我为控件指定相同的左边距/填充,仍然可以在不同类型的控件之间看到1-2个像素的差异. 问题是小部件的边框(eclipse中的蓝色矩形)和小部件的内容/图形之间的距离因小部件而异(比如TextView和Button). 我可以通过为TextView指定左边距或 我正在尝试创建一个布局(使用 eclipse),我需要垂直对齐各种控件,如TextVIEw和button.我试图保持所有小部件完全左对齐.即使我为控件指定相同的左边距/填充,仍然可以在不同类型的控件之间看到1-2个像素的差异.

问题是小部件的边框(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小部件垂直对齐问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126591.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存