如何在运行时推断android属性?

时间:2015-01-25 18:43:19

标签: android layout attributes

以下首选项定义引用了一个简单的布局(view_profile_remove),其中一个ImageButton包含在preferences.xml的widget部分中。按钮按预期工作,但不能再单击或选择首选项本身。为了按照需要工作,我应该将布局属性android:descendantFocusability="blocksDescendants"包含在基础首选项布局中,但是,我无法访问相应的preferences.xml,因为它是系统布局。

如何在运行时推断出这个属性?

<EditTextPreference
    android:defaultValue="Black"
    android:key="prof_key_player2"
    android:summary="Black"
    android:title="2. Player"
    android:widgetLayout="@layout/view_profile_remove" />

1 个答案:

答案 0 :(得分:0)

我找到了一个解决问题的简单方法,无需编写自定义首选项或推断任何内容:

我刚刚将系统提供的preference.xml布局文件复制到我的项目res / layout /文件夹中,并进行了以下更改:

添加了必需的属性

android:descendantFocusability="blocksDescendants"

到最外面的LinearLayout元素和 删除了id-declarations中的所有“+”符号

然后我在首选项xml中添加了操作布局,如下所示:

    <EditTextPreference
        android:defaultValue="Black"
        android:key="prof_key_player2"
        android:summary="Black"
        android:title="2. Player"
        android:layout="@layout/preference"
        android:widgetLayout="@layout/view_profile_remove" />

工作正常,没有可聚焦问题了。