androidhiveのチュートリアルを使用してタブ レイアウトを作成できました。サイドタブを付けようか迷っています。. 左側のアイテムをクリックすると、右側にアクティビティが表示されます。
できるかな?と思いました。どうもありがとうございました。
androidhiveのチュートリアルを使用してタブ レイアウトを作成できました。サイドタブを付けようか迷っています。. 左側のアイテムをクリックすると、右側にアクティビティが表示されます。
できるかな?と思いました。どうもありがとうございました。
以下のようにレイアウトを設計してみてください。
その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;
}
}
ここに出力があります