我有一个应用程序使用<item name="android:windowActionBarOverlay">true</item>
出于某种原因,这会导致 ActionBar 位于辅助功能焦点列表的末尾,即使它首先出现在页面上,并且似乎具有更高的“z-index”(它绘制在 TextView 的顶部)。
我创建了一个示例 testapp(见截图),当我让 TalkBack “从顶部读取”时,它以“Hello World,Hello World,Hello World,Hello World”而不是“Action Bar Order”开头。
测试项目是一个简单的 1 片段活动。我的 xml 文件如下,Activity 是来自 Android Studio 向导的样板。
activity_my.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyActivity"
tools:ignore="MergeRootFrame" />
fragment_my.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity$PlaceholderFragment">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
字符串.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Action Bar Order</string>
<string name="hello_world">Hello world! \n Hello world! \n Hello World! \n Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
谁能告诉我如何让 ActionBar 在这种情况下始终首先获得焦点?我尝试添加 marginTop 以查看是否有帮助,使 TextView 实际上出现在屏幕上的位置比 ActionBar 低,但这也无济于事。