对于特定设计,我希望工具栏标题文本居中。
尽管如此,我还是无法在片段中使用它 我已经设法在活动中执行此操作,方法是按照这些instructions创建自定义工具栏小部件,其中包含工具栏的2个文本视图,并将其设置为SupportActionBar,将工具栏的xml添加为包含在活动的布局xml中。像这样:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarCouponDetailed);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayShowCustomEnabled(true);
TextView toolbarTitle = (TextView) findViewById(R.id.toolbar_coupons_title);
TextView toolbarTitleDate = (TextView) findViewById(R.id.toolbar_coupons_title_date_text);
toolbarTitle.setText(StringUtils.onlyFirstLetterUpperCase(mCoupon.getRetailerName()));
toolbarTitleDate.setText(mCoupon.getDateTxt());
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
我尝试使用相同的方法,但不知何故,我似乎可以让它工作。 有没有人有解决这个问题的想法或代码示例?
编辑: 我实际上为片段xml中包含的片段创建了另一个工具栏布局。在onCreateView()中,我创建了一个成员变量来创建对工具栏的引用,然后我可以使用onActivityCreated()来调用:
((MainActivity) getActivity()).setSupportActionBar(mToolbar);
((MainActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(true);
((MainActivity) getActivity()).getSupportActionBar().setDisplayShowTitleEnabled(false);
但是活动工具栏仍以这种方式使用
答案 0 :(得分:0)
无需为toolbar
创建另一个fragment
,因为工具栏是pf Actvity
的一部分,也是片段。应该只有一个工具栏
在每个fragment
使用以下方法或创建BaseFragment
并从onCreate()
调用方法
protected void setTitleFragment(String strTitle){
Toolbar mToolbar = (Toolbar) ((AppCompatActivity)getActivity()).findViewById(R.id.toolbar);
TextView txtTitle =((TextView)mToolbar.findViewById(R.id.toolbar_title));
txtTitle.setText(strTitle);
}