【发布时间】:2020-10-16 02:43:57
【问题描述】:
我正在使用可访问性对讲功能,但我面临一个问题我在父活动中有一个底部导航,并且从设置选项卡我正在使用 .add 打开另一个片段(内部片段)但内部片段视图没有获得焦点默认情况下
我也尝试过使用. replace,但默认情况下它并不专注于片段创建。
打开片段代码
val details = DetailsFragment.newInstance();
getSupportFragmentManager().setupForAccessibility()
getSupportFragmentManager().beginTransaction().add(android.R.id.content, details).commit()
我使用了这个扩展函数来不关注这个source的前一个片段
fun FragmentManager.setupForAccessibility() {
addOnBackStackChangedListener {
val lastFragmentWithView = fragments.lastOrNull { it.view != null }
for (fragment in fragments) {
if (fragment == lastFragmentWithView) {
fragment.view?.importantForAccessibility =
View.IMPORTANT_FOR_ACCESSIBILITY_YES
} else {
fragment.view?.importantForAccessibility =
View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
}
}
}
}
在正常情况下,我显示在第一个片段的开头它首先聚焦Textview 并自动说话,但在内部片段中默认情况下它不聚焦所以我应该怎么做才能在第一个视图上获得默认焦点默认
我已经尝试过了
android:focusable="true"
android:focusableInTouchMode="true"
并请求焦点,但它不起作用
请建议我任何帮助将得到高度评价
【问题讨论】:
标签: kotlin android-fragments autofocus talkback accessibility