自定义复选框显示 2.3 和 4.2 的不同布局
Posted
技术标签:
【中文标题】自定义复选框显示 2.3 和 4.2 的不同布局【英文标题】:Custom Checkbox Shows Different layouts for 2.3 and 4.2 【发布时间】:2012-12-19 14:23:16 【问题描述】:我正在处理项目,内部我想为复选框选中/未选中事件使用自定义图像。
在我的登录 xml 里面我写了:
<LinearLayout
android:layout_
android:layout_
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp" >
<CheckBox
android:id="@+id/chk_remember_me"
android:layout_
android:layout_
android:button="@drawable/checkbox_uncheked"
android:paddingLeft="5dp"
android:text="Remember Me"
android:textColor="#024d94"
android:textSize="12dp" />
</LinearLayout>
这里我使用android:paddingLeft="5dp"
来获取按钮和文本视图之间的空间。
我的问题:我对 2.3 和 4.2 有两种不同的看法
对于具有 xhdpi 或低于密度或具有大屏幕 i 的设备 正在进入屏幕下方(这是我想要的完美):
适用于具有 hdpi 或低于密度或具有正常/小密度的设备 屏幕我在屏幕下方:
谁能告诉我我在哪里失踪?还是我的布局有什么问题?
我想要在普通/大屏幕设备中为 4.2 设备获得的相同布局屏幕。
提前致谢。
【问题讨论】:
您是否尝试过使用 TextView 来显示文本? @dmon:感谢您的快速回复。但我已经尝试过您的建议无法解决我的问题。 【参考方案1】:Checkbox
似乎已经在内部默认使用填充,并用paddingLeft
覆盖它会导致这些问题。您应该从 XML 中删除该属性。
如果您仍想调整填充,则必须以编程方式进行。看到这个答案:https://***.com/a/4038195/832776
要仅将其应用于 >4.2,您可以使用以下内容,但我会在模拟器上进行测试以确保此问题不仅仅是您的设备的问题。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
【讨论】:
非常感谢您的支持。但是通过删除 paddingLeft 我得到了 2.3 内的默认空间,这比我想要的要多得多。对于 4.2,我在按钮和文本之间没有任何空格。所以通过删除 paddingLeft 不要解决我的问题。 @Bhavesh 使用两种不同的布局,一种用于 2.3,另一种用于 4.2 @chengbo: 呵呵!!..thnks 但这不是我想要的解决方案。应该有办法解决这个问题。 @OlegVaskevich:谢谢。我通过链接***.com/a/4038195/832776 尝试了您的建议,但没有完美地解决我的问题在 4.2 中完美运行,但在 2.3 设备的按钮和 textview 之间获得了更多空间。 老实说,这听起来像是制造商的定制,效果不太好;毕竟,您希望复选框在默认情况下应该看起来不错。【参考方案2】:为复选框提供固定宽度,希望这可以解决您的问题。
【讨论】:
感谢您的支持。但尝试了您的建议无法解决我的问题。 经过测试。正如预期的那样,这为整个控件添加了填充,而不是在复选框和文本之间【参考方案3】:不提供填充,默认带有复选框。
【讨论】:
以上是关于自定义复选框显示 2.3 和 4.2 的不同布局的主要内容,如果未能解决你的问题,请参考以下文章