私は既存の Android アプリをアクセス可能にする作業を行っていますが、非常にイライラします。機能するはずの多くの機能が機能しません。
Google Codelabsの例 で説明されているように、説明のためにコンテンツをグループ化しようとしていますが、それでもコンテンツの一部がジェスチャー ナビゲーション用にフォーカス可能になります。
私はルート ビュー three として垂直方向Fragment
の aを持っており、それぞれに anと aが含まれています。LinearLayout
RelativeLayouts
ImageView
TextView
Codelab と同様に、RelativeLayout
をフォーカス可能に設定しました。これらは純粋に装飾的なものであるためImageViews
、 を null に設定しました。ContentDescription
これは、ルートを持つXML
これらの 1 つのレイアウトです。RelativeLayouts
LinearLayout
<LinearLayout 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:background="@android:color/white"
android:orientation="vertical"
tools:context="com.my.fancyapp.fragments.OtherFragment">
<RelativeLayout
android:id="@+id/item_youtube"
android:layout_width="match_parent"
android:layout_height="@dimen/other_item_height"
android:focusable="true"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/other_item_padding">
<ImageView
android:id="@+id/ivYouTube"
android:layout_width="@dimen/other_icon_width"
android:contentDescription="@null"
android:layout_height="match_parent"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/other_text_margin_left"
android:text="YouTube"
android:textAppearance="@style/ArtistTextAppearance" />
</RelativeLayout>
...
</LinearLayout>
では、パースペクティブ ビュー (Youtube チャンネル、Facebook ページ、またはインプレッサムを含む Web ビュー) にリンクするfor eachFragment
を設定し、 withを読み込みます。onClickListener
RelativeLayout
ImageView
Picasso
itemYoutube.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(youTubeUrl));
startActivity(intent);
}
}
});
Picasso.with(getActivity())
.load(R.drawable.icon_youtube)
.fit()
.centerInside()
.into(iconYoutube);
itemYoutube.setContentDescription(getString(R.string.youtube));
問題は、アイテムをクリックしてからスワイプして次のアイテムに移動しようとすると、次のアイテムに移動するのではなく、テキストが強調表示されることです。RelativeLayout
TextView
フォーカスが次ではなくにジャンプする理由は誰にもわかりますRelativeLayout
か?
私は次のことを試しました:
RelativeLayouts
XMLの ContentDescription を設定します- の ContentDescription
TextViews
を null に設定します (おそらく適切ではありません)。 - コンテンツの説明を設定する順序を変更しました
TextViews
focusable:false に設定します- の ContentDescription を削除したため
RelativeLayouts
、 のみに移動し、必要にTextViews
応じて全体が強調表示さRelativeLayout
れませんでした
Codelabs の例とは対照的に、ImageView
内部にあるのにすべてを読み取る必要RelativeLayout
があるのは問題でしょうか? TextViews
または、xml によっていくつかの値を設定しClickListener
、コードによって動的に設定する場合に問題がありますか? 私はまったく無知です。