Android工具栏,如何隐藏和显示片段
我有一个工具栏(android.support.v7.widget.ToolBar),它有两个可点击的图标,用来显示它们自己的视图 我认为,托管工具栏并持有onCreateOptionsMenu()、onOptionItemSelected()等方法的主要活动应该有2个片段,对应于图标。因此,当我点击一个图标,然后点击另一个图标时,相关的片段应该被隐藏/显示。这是前进的正确方式吗?还是我要用意图Android工具栏,如何隐藏和显示片段,android,android-fragments,android-toolbar,Android,Android Fragments,Android Toolbar,我有一个工具栏(android.support.v7.widget.ToolBar),它有两个可点击的图标,用来显示它们自己的视图 我认为,托管工具栏并持有onCreateOptionsMenu()、onOptionItemSelected()等方法的主要活动应该有2个片段,对应于图标。因此,当我点击一个图标,然后点击另一个图标时,相关的片段应该被隐藏/显示。这是前进的正确方式吗?还是我要用意图 我还想过将FragmentStatePager适配器与ViewPager一起使用,但我不确定这是否可
我还想过将FragmentStatePager适配器与ViewPager一起使用,但我不确定这是否可行,因为这是一个工具栏,而不是一个单独的滑动机制,可以从片段a->片段B移动,反之亦然。在活动中添加一个
框架布局
:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
显然,您必须事先初始化片段,并可能在执行事务之前添加一个检查以查看某个片段是否已显示。只需使用两个片段,如果需要切换到另一个片段,请在
onOptionItemSelected()
中执行FragmentTransaction。
@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);
}