4

私はアンドロイドに不慣れです、私はそれにいくつかのタブを追加するtabHostを使用しています、それは非常にうまく機能します、しかし私が横向きモードで私のデバイスを回転させるときそれはそこでもうまく機能します、しかしそれは多くのスペースをカバーするのでそこにタブバーは必要ありませんそして私はグーグル広告も持っているので、両方とも画面の半分をカバーし、ユーザーが対話するための小さなスペースを残します。必要なのは、iPhoneでできるようにタブバーを非表示にして少しスペースを空けるためのソリューションです。対話するユーザー。緊急の解決策が必要です。ありがとう

4

4 に答える 4

6

LinearLayout や RelativeLayout などの任意の ViewGroup でタブ ウィジェットをラップし、このラッパーを表示/非表示にするには、tabActivity に静的関数を作成する必要があると思います。

<LinearLayout
        android:id="@+id/popupTabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <TabWidget android:id="@android:id/tabs"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"></TabWidget>
    </LinearLayout>

これで、タブ アクティビティは次のようになります。

public class TabsView extends TabActivity { 
    public static LinearLayout popupTabs ;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        popupTabs = (LinearLayout) findViewById(R.id.popupTabs);

        // Your other code
        //............
        //............
    }

    // Show Tabs method
    public static void showTabs(){
        popupTabs.setVisibility(ViewGroup.VISIBLE);
    }

    // Hide Tabs method
    public static void hideTabs(){
        popupTabs.setVisibility(ViewGroup.GONE);
    }

}

これで、このメソッドをコード内の任意の場所から静的に呼び出すことができます。

// hide tab from any activity
TabsView.showTabs();

// hide tab from any activity
TabsView.hideTabs()
于 2011-04-29T15:35:09.567 に答える
5

為にHide

mTabHost.getTabWidget().setVisibility(View.GONE);

為にVisible

mTabHost.getTabWidget().setVisibility(View.VISIBLE);
于 2013-09-01T18:13:55.280 に答える
2

最も簡単な方法は、TabHost を含まない layout.xml ファイルの 2 番目のバージョンを作成し、それを「layout-land」という名前のリソース フォルダーに配置することです (「land」サフィックスは「landscape」の略です)。詳細については、この SDK の記事を参照してください。

于 2010-10-21T13:03:10.647 に答える
0

Reuben が言っていることとは別に、変更が少しスムーズになるように、両方の間の遷移をアニメーション化する必要があります。

于 2010-10-21T13:04:53.593 に答える