我有一个应用程序,目前只有2个片段。片段1,这有导航抽屉和标题。
片段2需要自定义视图,因为添加菜单项将无法正常工作,因为我需要对齐。所以我将视图添加如下:
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.MATCH_PARENT,
Gravity.LEFT);
//Remove nav drawer "hamburger"
mMainActivity.mActionBarDrawerToggle.setDrawerIndicatorEnabled(false);
//Remove title from Toolbar
bar.setDisplayShowTitleEnabled(false);
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
View postToolBar = layoutInflater.inflate(R.layout.upload_content_toolbar, null);
mMainActivity.mToolBar.addView(postToolBar, params);
没关系,它显示正确。但是,当我想返回前一个片段Fragment 1时,我会调用mMainActivity.mToolBar.removeView(postToolBar);
我在返回片段1时调用它,因为用户可以通过后退按钮或postToolBar中的按钮导航。但是,观点仍然存在。我无法摆脱它。我现在尝试将可见性设置为GONE,但这也不起作用。
使用Action Bar非常简单,但是工具栏似乎有些复杂。
我必须在我的两个片段中添加它,我扩展了一个BaseFragment,我在其中声明了工具栏视图。
任何人都可以帮助或向我发送教程吗?
答案 0 :(得分:0)
这就是我此时的成就:
在活动onCreateView();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowCustomEnabled(true); // enable overriding the default toolbar_home layout
getSupportActionBar().setDisplayShowTitleEnabled(false); // disable the default title element here (for centered title)
getSupportActionBar().setDisplayShowHomeEnabled(false);
cutomToolbarView=getLayoutInflater().inflate(R.layout.custom_toolbar_home, null);
getSupportActionBar().setCustomView(cutomToolbarView);
}
这是做魔术的两种简单方法
public void setToolbarTitleEnabled(String title) {
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(title);
}
public void setCustomToolbarEnabled() {
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
}
然后只需更改动作栏就可以了:
何时选择HomeFragment.java或其他任何案例
setToolbarTitleEnabled(CURRENT_TAG);
以及何时选择其他片段:
setCustomToolbarEnabled();