我有一个带有复选框的列表视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<CheckBox android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/nomeAPP" style="?listItem" />
</LinearLayout>
但问题是:复选框是在文本上(文本是左边的很多)
我该如何纠正?
答案 0 :(得分:1)
如何将android:paddingLeft="xdp"
放在哪里x是您需要为文本添加的dp数?
填充填充只会移动文本而不会移动“Tick-Button”。
如果使用硬编码的dp不符合您的需要,您也可以考虑android:gravity
属性。
答案 1 :(得分:1)
如果您的文字与复选框的布局相同,请执行以下操作:
<CheckBox
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/nomeAPP"
style="?listItem"
android:layout_marginLeft="10dp" />
但如果不是,那就这样做:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp">
<CheckBox
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/nomeAPP"
style="?listItem" />
</LinearLayout>
Obs:我只为示例添加了左边距和填充。
如果您有更多疑问,请告诉我。感谢。
答案 2 :(得分:0)
这是我用于列表中项目的内容,每个项目都有文本和单选按钮。请注意layout_weight和layout_gravity设置:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/select_file_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:layout_weight="100"
/>
<RadioButton
android:id="@+id/file_item_checked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:layout_gravity="right"
/>
</LinearLayout>
答案 3 :(得分:0)
有两种方法可以解决此问题_
1通过扩展android.widget.CheckBox
类来构建您自己的自定义CheckBox类。完整自定义代码如下_
public class CustomCheckBox extends CheckBox {
public CustomCheckBox(Context context) {
super(context);
}
public CustomCheckBox(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public CustomCheckBox(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public int getCompoundPaddingLeft() {
final float scale = this.getResources().getDisplayMetrics().density;
/*add padding you needed so the text is not on top of the
* CheckBox.
*/
return (super.getCompoundPaddingLeft() + (int) (10.0f * scale + 0.5f));
}
}
2在您的活动中设置填充_
final float scale =this.getResources().getDisplayMetrics().density;
checkBox.setPadding(checkBox.getPaddingLeft() + (int)(10.0f * scale + 0.5f),
checkBox.getPaddingTop(),
checkBox.getPaddingRight(),
checkBox.getPaddingBottom());
我希望这能帮助所有有这个问题的人...... :)