Android 工具栏,如何隐藏和显示片段
Android Toolbar, how to hide and show fragments
我有一个工具栏 (android.support.v7.widget.Toolbar),它有 2 个可点击的图标,用于显示它们自己的视图。
我认为,托管工具栏并包含 onCreateOptionsMenu()、onOptionItemSelected() 等方法的主要 activity 应该有 2 个片段,对应于图标。所以当我点击一个图标,然后点击另一个图标时,相关的片段应该是hidden/shown。这是前进的正确方法吗?还是我打算使用意图?
我还考虑过将 FragmentStatePager 适配器与 ViewPager 一起使用,但我不确定这是否可行,因为这是一个 ToolBar 而不是从 Fragment A -> Fragment B 移动的单独滑动机制,反之亦然。
在您的activity中添加一个FrameLayout
:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在单击工具栏按钮时换出片段,如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.menu_item_1) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment1)
.commit();
} else if(id == R.id.menu_item_2) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment2)
.commit();
}
return super.onOptionsItemSelected(item);
}
显然,您必须事先初始化您的片段,并且可能会添加检查以查看某个片段是否已在您进行交易之前显示。
我有一个工具栏 (android.support.v7.widget.Toolbar),它有 2 个可点击的图标,用于显示它们自己的视图。
我认为,托管工具栏并包含 onCreateOptionsMenu()、onOptionItemSelected() 等方法的主要 activity 应该有 2 个片段,对应于图标。所以当我点击一个图标,然后点击另一个图标时,相关的片段应该是hidden/shown。这是前进的正确方法吗?还是我打算使用意图?
我还考虑过将 FragmentStatePager 适配器与 ViewPager 一起使用,但我不确定这是否可行,因为这是一个 ToolBar 而不是从 Fragment A -> Fragment B 移动的单独滑动机制,反之亦然。
在您的activity中添加一个FrameLayout
:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在单击工具栏按钮时换出片段,如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.menu_item_1) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment1)
.commit();
} else if(id == R.id.menu_item_2) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment2)
.commit();
}
return super.onOptionsItemSelected(item);
}
显然,您必须事先初始化您的片段,并且可能会添加检查以查看某个片段是否已在您进行交易之前显示。