0

フラグメント レイアウト デモから
:simple_list_item_checkable_1.xml

<com.example.android.supportv4.view.CheckableFrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <TextView
            android:id="@android:id/text1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:gravity="center_vertical"
    />
</com.example.android.supportv4.view.CheckableFrameLayout>

そしてクラスがありますCheckableFrameLayout.java

public class CheckableFrameLayout extends FrameLayout implements Checkable {
    private boolean mChecked;

    public CheckableFrameLayout(Context context) {
        super(context);
    }

    public CheckableFrameLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public void setChecked(boolean checked) {
        mChecked = checked;
        setBackgroundDrawable(checked ? new ColorDrawable(0xff0000a0) : null);
    }

    public boolean isChecked() {
        return mChecked;
    }

    public void toggle() {
        setChecked(!mChecked);
    }

}

デモがなぜそのような方法で記述されているのか本当にわかりません。XML コードに切り替えることはできますか?
Google を試してみましたが、まだ答えが見つかりません。

4

1 に答える 1

0

CheckableFrameLayout はカスタム表示要素であり、組み込みの Android UI ウィジェットではありません。動作はソース コードで定義され、UI は XML で定義されます。

于 2013-01-15T10:20:44.817 に答える