持久性 BottomSheet 视图不会在(辅助功能)的对讲模式中获得焦点
Persistent BottomSheet Views do not get focus in Talkback mode on (Accessibility)
我有一个持久的底部sheet喜欢bottom_sheet_persistent.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottomSheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="230dp"
android:background="#2196F3"
app:layout_constraintTop_toTopOf="parent" >
<TextView
android:text="Text in Bottom Sheet"
android:layout_width="match_parent"
android:textSize="24sp"
android:layout_height="wrap_content"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
而底部sheet用过的activity是
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E7E7E7"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:paddingBottom="200dp"
app:layout_constraintTop_toTopOf="parent" >
<TextView
android:text="Text in Activity"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<include
android:id="@+id/bottomSheet"
layout="@layout/bottom_sheet_persistent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
当我打开辅助功能的对讲并且底部sheet展开时,Activity中的文本(将被底部sheet的文本视图重叠)这是在 bottomsheet 下方获得焦点。我怎样才能得到底部的焦点sheet(似乎很明显)。我试图让底部 sheet 可点击,但在那种情况下,整个底部 sheet 获得焦点而不是单个项目。
任何帮助或建议!
底部sheet布局的父视图会像这样
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottomSheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
android:focusable="true"
android:importantForAccessibility="no"
android:clickable="true"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
我遇到了同样的问题,我明确地调用 performAccessibilityAction() 修复了它。
在底部试试这个 sheet.
yourView.performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS,null)
我有一个持久的底部sheet喜欢bottom_sheet_persistent.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottomSheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="230dp"
android:background="#2196F3"
app:layout_constraintTop_toTopOf="parent" >
<TextView
android:text="Text in Bottom Sheet"
android:layout_width="match_parent"
android:textSize="24sp"
android:layout_height="wrap_content"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
而底部sheet用过的activity是
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E7E7E7"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:paddingBottom="200dp"
app:layout_constraintTop_toTopOf="parent" >
<TextView
android:text="Text in Activity"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<include
android:id="@+id/bottomSheet"
layout="@layout/bottom_sheet_persistent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
当我打开辅助功能的对讲并且底部sheet展开时,Activity中的文本(将被底部sheet的文本视图重叠)这是在 bottomsheet 下方获得焦点。我怎样才能得到底部的焦点sheet(似乎很明显)。我试图让底部 sheet 可点击,但在那种情况下,整个底部 sheet 获得焦点而不是单个项目。
任何帮助或建议!
底部sheet布局的父视图会像这样
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottomSheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
android:focusable="true"
android:importantForAccessibility="no"
android:clickable="true"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
我遇到了同样的问题,我明确地调用 performAccessibilityAction() 修复了它。 在底部试试这个 sheet.
yourView.performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS,null)