3

私は自分の問題で立ち往生しています。それはカスタムタブウィジェットです。------のような複数のタブ がHomeありNewsます。AbcPQR

アクティビティはのためのものでなければなりませんboth orientation like portrait and landscape。そのため、各タブにはtwo xml、に保存されているポートレートとに保存されているlayout-port/file.xmlランドスケープがあります。layout-land/file.xml

縦向きから横向きの向きを管理するためandroid:configChanges="orientation|keyboardHidden"に、各アクティビティにルールタグを追加しました。

  • TAB_SAMPLE.javaタブファイル。
  • TAB_GROUP_ACTIVITY各タブグループアクティビティファイル
  • file.javaタスクファイル

このすべての後、私はここで問題を抱えています:

android: configChanges add= "orientation|keyboardHidden"rule tag in tab_sampleアクティビティの場合は完璧に機能します。別のビューを管理するようなものです。ポートからランドおよびランドからポートですが、Home.javaでは機能しません。

今、私remove android:configChanges="orientation|keyboardHidden" rule tag in tab_sampleが活動している場合、News.javaではなくホーム活動のために働いています

向きを変更すると、同じxmlフォームポートを維持してlayout-landから使用されないことを意味します。ある意味では、OnCreate()を再度呼び出します。

だから私が見つけたようにmay be issue is in Tab Widget.

アップデート

コードをトレースした後、主な問題はグリッドビューアクティビティにあることがわかりました。これは、その唯一のアクティビティが機能していないためです。

Issue is between Tab host v/s Grid View。なぜlayout-landxmlファイルを受け取らないのかわかりません。私はこれを同じ問題として見つけましが、その質問のリプレイもありません

詳細はmanifestfile.xml を参照してください。すべてのアクティビティで縦向きと横向きの両方を維持したいと思います。

両方のXMLファイル

これを解決する方法を教えてください。

4

1 に答える 1

3

Oooohhhついに私は上記の問題の解決策を得ました。とても大変でした。

横向きの状態を縦向きに、またはその逆に維持するために、通常、android:configChanges="keyboardHidden|orientation"アクティビティの下にプロパティタグを追加します。

しかし、ここmay be issue is Tab_Group_ Activityではそのため、GridViewで状態を維持できません。完全に機能している他のすべての方向の残りを処理していなかった単一のJavaファイルのみですGrid_File.java

今私がそれからならそのremove android:configChanges="keyboardHidden|orientation"取り扱い他のものだけではありません。TAB_SAMPLE.javaGrid_File.java

mean that was keeping same Layout XML in landscape also where i have two separate XML File.

これが私の解決策です:

グリッドの列数を設定しadd android:configChanges="keyboardHidden|orientation"ましTAB_SAMPLE.java た。 implement onConfigurationChanged(Configuration newConfig)お気に入りgridView.setNumColumns(6);

@Override
    public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        // gridView.setSelection(index);
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
        {

            // Log.e("On Config Change", "LANDSCAPE");
            gridView.setNumColumns(6);

        } else
        {

            // Log.e("On Config Change", "PORTRAIT");
            gridView.setNumColumns(4);
        }
    }

通常android:configChanges="keyboardHidden|orientation"、アクティビティの下にタグを追加するかimplementing onConfigurationChanged(Configuration newConfig)、ここに両方を記述しました。

于 2013-02-04T11:18:34.083 に答える