我目前有一个手机应用程序,它使用标签导航操作栏在三个片段之间导航。
我现在想创建一个相当于这个应用程序的平板电脑,但我不想使用动作栏,而是希望这三个片段彼此相邻。所以每个片段都会填满屏幕的1/3。
问题是,我无法弄清楚如何处理这个问题。我曾想过使用Android Studio的Design部分创建占位符,然后使用onCreate()
方法通过膨胀其中的片段来填充这些占位符。但我仍然不知道如何处理这个问题。
有没有人有任何想法?
答案 0 :(得分:3)
您可以制作3个占位符,每个占位符占据屏幕的三分之一,然后用碎片填充它们。当然,你必须只在平板电脑的布局中制作它们。
Fragment fragment1 = new FirstFragment();
Fragment fragment2 = new SecondFragment();
Fragment fragment3 = new ThirdFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.placeholder1, fragment1)
.replace(R.id.placeholder2, fragment2)
.replace(R.id.placeholder3, fragment3)
.commit();
编辑:布局示例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/placeholder1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/placeholder2"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/placeholder3"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"/>
</LinearLayout>
答案 1 :(得分:1)
你使用onCreate()的想法很好。
基本上你需要的是一个ViewGroup类型的容器,然后使用FragmentTransactions来相应地添加它们。
考虑一下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);
// Create fragments
Fragment f0 = new Fragment0();
Fragment f1 = new Fragment1();
Fragment f2 = new Fragment2();
// Add fragments
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container0, f0);
ft.add(R.id.container1, f1);
ft.add(R.id.container2, f2);
ft.commit();
}
有关更多示例和背景信息,请参阅此处:http://www.survivingwithandroid.com/2013/04/android-fragment-transaction.html