以下首选项定义引用了一个简单的布局(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" />
答案 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" />
工作正常,没有可聚焦问题了。