3

現在、ナビゲーションに ActionBar タブを使用するアプリを作成しています。デバイスが縦向きモードの場合、ユーザーが選択できる 2 つのタブがあり、それぞれにフラグメントが関連付けられています。タブレットが横向きに切り替わったら、これらのタブを非表示にしたいと思います。これは、各ペインがフラグメントの 1 つをホストする横向きの 2 つのペイン レイアウトを定義しているためです。切り替え中にアクティビティが再作成されることがわかっているので、向きが縦向きのときに OnCreate でタブを作成するだけで、コードでこれを実現できます。ただし、2 ペイン レイアウトはタブレットにのみ使用されます (レイアウト大地で定義しています)。横向きの電話の場合は、タブ付きの 1 ペイン レイアウトを使用する必要があります。「2ペインレイアウトファイルが膨張しているときにのみタブを使用する」などのコードを作成できる方法はありますか?

4

2 に答える 2

4

values-large-land 内のリソースにブール変数を追加して true に設定し、コードでそれを使用してタブをセットアップします。

boolean isDualPane = getResources().getBoolean(R.boolean.dualPane);
if(!isDualPane) {
 setupActionBarTabs();
}
于 2013-05-11T23:00:00.830 に答える
3

次の 2 つのフォルダー内でこのブール値を定義します。

値-土地/bools.xml:

<bool name="isInLandscape">true</bool>

この:

値-ポート/bools.xml

<bool name="isInLandscape">false</bool>

今、あなたはこれを行うことができます:

boolean isInLandscapeMode = getResources().getBoolean(R.bool.isInLandscape);

画面を回転するとアクティビティが再作成されるため、この値に基づいてタブを作成できます。

if (!isInLandscapeMode){

// add tabs

}
于 2013-05-11T23:01:48.947 に答える