2

モバイルとタブレットの両方で 1 つのアプリを作成したいと考えています。私は actiobBar sherlock ライブラリを使用しています。SherlockFragmentActivity を拡張する MainActivity があります。MainActivity には、タブのみを含むアクションバーがあります。ここで、各タブにフラグメントを関連付けたいと思います。このフラグメントには 2 つのフラグメント (リスト フラグメントと詳細フラグメント) が必要です。これを行う方法を教えてください。

4

1 に答える 1

0

いくつかの方法がありますが、私は私のものだけを説明します。

任意のナビゲーション、ViewPager、TabAdapter を使用できます...アイデアは、フラグメントのレイヤーを追加することです。

たとえば、ビューページャーを備えた TabAdapter があります。

    private ViewPager           _viewPager;
    private TabsAdapter         _tabsAdapter;

   _tabsAdapter = new TabsAdapter(this, _viewPager);
   _tabsAdapter.addTab(bar.newTab().setCustomView(getTabIndicator(getString(R.string.tle_tab_home), R.drawable.ic_menu_home)), FragmentAccueil.class, null);
   _tabsAdapter.addTab(bar.newTab().setCustomView(getTabIndicator(getString(R.string.tle_tab_directory), R.drawable.tab_list_icon)), ContainerFragmentAnnuaire.class, null);

ContainerFragmentAnnuaire はフラグメントを含むレイアウトです

たとえば、ハンドセットの場合、このレイアウトを作成します

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment class="com.example.android.ContainerFragmentAnnuaire"
              android:id="@+id/list_frag"
              android:layout_width="match_parent"
              android:layout_height="match_parent"/>
</FrameLayout>

タブレットの場合、これを作成します

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/frags">
  <fragment class="com.example.android.ContainerFragmentAnnuaire"
            android:id="@+id/list_frag"
            android:layout_width="@dimen/titles_size"
            android:layout_height="match_parent"/>
  <fragment class="com.example.android.ContainerFragmentDetail"
            android:id="@+id/details_frag"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
</LinearLayout>

良いフォルダにレイアウトを追加するだけです

ハンドセット用 res/layout/layout.xml

タブレット用 res/layout-large/layout.xml

于 2013-07-08T09:49:22.070 に答える