0

タブホストの下にいくつかのページが必要です。タブのあるページは、アプリケーションの開始後、約2/3ページでアクセスされます。タブホストの最初のページにリンクする方法がわかりません(タブホストのないページから)

タブホストの各タブは個別のアクティビティです。

したがって、ユーザーをタブホストのページに移動するときは、(TabActivityの拡張から)タブホストアクティビティを開始し、タブホストを作成してから...どういうわけか、タブのどのページをロードするかを選択しますか?tabhost.myTab.trigger.start();のように タブアクティビティの1つを直接ロードする代わりに。

したがって、タブホストを離れて戻ってきたときはいつでも、それを再作成しています。これは、物事を構造化する正しい方法ですか?

ありがとう!

4

2 に答える 2

2

TabHost メソッドは、Android アプリケーション内でタブを作成するかなり古い方法と考えられています。これは、これらのタブ内にアクティビティを配置している場合に特に当てはまります。

最新の Android アプリケーションはフラグメントを使用し、アクション バー フレームワークを使用してそれらのフラグメントをタブ内に配置します。

これは、メインのアクティビティから簡単に実行できます。

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

これにはいくつかの利点があります。これは、フラグメントを ViewPager 内に配置できることを意味します (したがって、ユーザーはそれらの間をスワイプできます)。また、タブが実行中のデバイスに適応することも意味します。(携帯電話ではアクション バーの下に表示される場合がありますが、タブレットでは実際にはアクション バーの一部になります)。

実装によっては、タブ間を移動してもフラグメントが再作成されないようにすることができます (それが必要な場合)。

アクション バー タブの実装方法に関する詳細なガイドは、こちらにあります。

下位互換性が懸念される場合は、すばらしいAction Bar Sherlockライブラリをチェックしてください。

于 2012-11-19T08:33:19.440 に答える
1

私はあなたが達成しようとしている行動を完全には理解していません。

ただし、車輪の再発明をしたくない場合は、ActionBarSherlockデモアプリ1をインストールして、ライブラリの例の1つとして目的の動作がすでに実装されているかどうかを確認することをお勧めします。すでに完了している場合は、githubプロジェクトにアクセスして、ソースコードを確認し、その方法を学び、貢献することができます。

アクションバーシャーロックのデモ

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos&hl=en

アクションバーシャーロックフラグメントのデモ

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.fragments&hl=en

于 2012-11-19T00:44:58.207 に答える