web-dev-qa-db-ja.com

Android:TabActivityは非推奨です、フラグメントを使用しますか?

TabActivityは非推奨になっているようです。フラグメントを使用する必要があります。

標準のアクティビティを使用しようとしましたが、getTabHostを呼び出すことができませんでした。

だから私はフラグメントを使わなければならないようです。しかし、私はこれがどのように機能するか少し混乱しています。

フラグメントはアクティビティではないので、マニフェストファイルにはないことを理解していますか?

だから私はフラグメントでstartActivityを行うことができないと思いますか?

TabHostとFragmentsを説明する良い例を知っている人はいますか?私が見つけたすべての例とチュートリアルはtabactivityのみを使用しています。

前もって感謝します

9
Martin

代わりにTabLayoutを使用できるかもしれません。

タブは、上部にカスタムの「タブインジケーター」を備えたViewPagerを活用することで最適に実装されるようになりました。 Android "M"のサポートデザインライブラリリリースに含まれるGoogleの新しいTabLayout。

TabLayoutEdit PagePageHistoryを使用したGooglePlayスタイルタブ でTabLayoutを使用する完全なチュートリアルにアクセスしてください。

それに直面しよう。フラグメントは未来です。そして、私たちはそれらを使用するように導かれています。

次のチュートリアルは非常に有益であり、すべての「フラグメント付きタブ」の質問に答えてくれることを願っています。

0
Sampath

今日Androidそれらのための素晴らしいチュートリアルを手に入れました。 タブ付きのスワイプビューの作成 から始めてください

これは、タブを作成する方法の小さなスナップショットです

@Override
public void onCreate(Bundle savedInstanceState) {
    final ActionBar actionBar = getActionBar();
    ...

    // Specify that tabs should be displayed in the action bar.
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Create a tab listener that is called when the user changes tabs.
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            // show the given tab
        }

        public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            // hide the given tab
        }

        public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
            // probably ignore this event
        }
    };

    // Add 3 tabs, specifying the tab's text and TabListener
    for (int i = 0; i < 3; i++) {
        actionBar.addTab(
                actionBar.newTab()
                        .setText("Tab " + (i + 1))
                        .setTabListener(tabListener));
    }
}
0
Ilya Gazman

まず、context.startActivity(....);のようなものによってフラグメントからstartActivityを実行できます。

次に、フラグメントを使用してタブを理解するには、Android Studioでサンプルプロジェクトを1つ作成し、既存のテンプレートを選択するように求められたら、タブがあるテンプレートを選択します。こうすると、標準コード。

0
Irfan Raza

選択された実現を使用することに関するあなたの問題だと思います。 Android SDKには、ActivityList、TabActivity、ActionBarActivityなどのViewのバリエーションが多数含まれています。これらはすべて非推奨であるか、非推奨になる予定です。理由を尋ねる必要がありますか?

  • 新しいマテリアルのタブとリストを使用した別の例を見てください。アプリケーションには、ToolbarLayoutなどのメインヘッダーが含まれています。これには、ツールバーのさまざまな状態が含まれているため、TabLayoutやその他の優れた機能を追加できます。

だからあなたの質問に答えてください-カスタマイズして強力なビュー要素を使用してから、メインアクションビュー(アクティビティ)のいくつかの実装を使用することをお勧めします。この理由は、要素のアクション仕様を見ると、さらにはっきりとわかります。ビューの初期化でアクティビティを実行する必要はありません。

0
GensaGames