我有一个具有多个 SwitchPreferences 的首选项屏幕。我需要为每个开关提供自定义 contentDescription 以实现可访问性。SwitchPreference 没有作为 contentDescription 的属性。任何人都可以帮助我如何为可访问性/对讲的 switchPreferences 提供自定义描述吗?
问问题
332 次
1 回答
0
偏好不是视图。您不能contentDescription
直接添加到首选项。您需要创建一个自定义首选项,SwitchPreference
从onBindViewHolder
.
public class SwitchPreferenceAccessibility extends SwitchPreference {
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
View switchView = holder.findViewById(R.id.switchWidget);
switchView.setContentDescription(getString(R.string.accessibility_information));
}
}
或者你可以使用 declare-styleable 属性,这样会更方便。
public class SwitchPreferenceAccessibility extends SwitchPreference {
public SwitchPreferenceAccessibility(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
mContentDescription = TypedArrayUtils.getText(a, R.styleable.SwitchPreferenceAccessibility_content_description, "");
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
View switchView = holder.findViewById(R.id.switchWidget);
switchView.setContentDescription(mContentDescription);
}
}
<SwitchPreferenceAccessibility
app:key="key"
app:title="title"
app:content_description="@string/accessibility_information" />
于 2020-07-30T03:07:46.750 回答