我正在尝试将R.layout.simple_list_item_multiple_choice与ListView一起使用.CheckedTextView用于simple_list_item_multiple_choice.xml,但是如何使复选框左对齐而不是右对齐?
Moh*_*bry 43
秘密在于android:checkMark使其为null
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checked_text_single_choice"
android:layout_width="match_parent"
android:layout_height="52dp"
android:checkMark="@null"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
android:drawableRight="@null"
android:textColor="@android:color/black"
/>
Run Code Online (Sandbox Code Playgroud)
Rog*_*ays 34
创建自己的行模板并在CheckedTextView上设置android:drawableLeft.
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:gravity="center_vertical"
android:paddingLeft="5dip"
android:drawableLeft="?android:attr/listChoiceIndicatorMultiple"
/>
Run Code Online (Sandbox Code Playgroud)
要么
android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
Run Code Online (Sandbox Code Playgroud)
Won*_*abo 10
如果您希望复选框位于左侧,只需使用a即可CheckBox.也许这当然没关系,但是CheckBox可以包含文字.您可以通过添加XML属性android:text或通过调用setText()方法来定义该文本.实际上CheckBox是继承自Button,这TextView就是为什么它具有所有与文本相关的属性.
您可以将drawable分配给drawableLeft属性,但不会带来任何好处,因为它不支持着色。相反,我像这样扩展了CheckedTextView:
public class LeftSideCheckedTextView extends CheckedTextView {
public LeftSideCheckedTextView(Context context) {
this(context, null, 0);
}
public LeftSideCheckedTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public LeftSideCheckedTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Field mCheckMarkGravity = null;
try {
mCheckMarkGravity = this.getClass().getSuperclass().getDeclaredField("mCheckMarkGravity");
mCheckMarkGravity.setAccessible(true);
mCheckMarkGravity.set(this, Gravity.START);
} catch (Exception e) {
Logger.error(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据此故障单,我在这里访问了CheckedTextView内部使用的隐藏字段mCheckMarkGravity,但无法通过样式属性进行访问:https : //code.google.com/p/android/issues/detail? id=174517
| 归档时间: |
|
| 查看次数: |
26083 次 |
| 最近记录: |