0

androidhiveのチュートリアルを使用してタブ レイアウトを作成できました。サイドタブを付けようか迷っています。これは私が作ったモックアップです。. 左側のアイテムをクリックすると、右側にアクティビティが表示されます。

できるかな?と思いました。どうもありがとうございました。

4

1 に答える 1

1

以下のようにレイアウトを設計してみてください。

そのfragment_top_rated.xmlファイルコードは次のとおりです。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/passenger"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="2dp"
        android:orientation="horizontal" 
        android:weightSum="1">

        <FrameLayout
            android:id="@+id/frameLayout1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight=".4"
            android:background="@android:color/background_dark" >
        </FrameLayout>

        <FrameLayout
            android:id="@+id/frameLayout2"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight=".6"
            android:background="@android:color/darker_gray" >
        </FrameLayout>
    </LinearLayout>

</RelativeLayout>

フラグメントを含むタブをクリックすると、この画面を読み込むことができます。

編集:

質問リンクの定義されたデモとまったく同じプロジェクトを開発したとします。

Tabactivity で、場所タブを選択すると、左側に場所のフラグメントが読み込まれます。選択したタブのリンクで定義されているので、フラグメントをロードするだけです。

PlacesFragment

PlacesFragment以下のようにコードを記述します。

public class PlacesFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_top_rated,
                container, false);
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft1 = fm.beginTransaction();
        Fragment m_fragSet = new GamesFragment();
        ft1.replace(R.id.frameLayout2, m_fragSet);
        ft1.commit();

        FragmentManager fmg = getFragmentManager();
        FragmentTransaction ftrans = fmg.beginTransaction();
        Fragment m_frag = new MoviesFragment();
        ftrans.replace(R.id.frameLayout1, m_frag);
        ftrans.commit();
        return rootView;
    }
}

右側のフラグメント ゲームを作成する

public class GamesFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_games, container, false);

        return rootView;
    }
}

ここはMoviesFragment.java

public class MoviesFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_movies, container, false);

        return rootView;
    }

}

TabsAdapter以下のように定義します。

public class TabsPagerAdapter extends FragmentPagerAdapter {

    FragmentActivity context;
    public TabsPagerAdapter(FragmentManager fm,FragmentActivity act) {
        super(fm);
        context=act;
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new TopRatedFragment();
        case 1:
            // Games fragment activity
            return new GamesFragment();
        case 2:
            // Movies fragment activity
            return new MoviesFragment();
        }


        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 3;
    }

}

ここに出力があります

ここに画像の説明を入力

于 2013-10-08T09:30:05.507 に答える