Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上从片段中居中放置标题工具栏?_Android_Android Layout_Android Custom View_Android Toolbar_Android Appbarlayout - Fatal编程技术网

如何在Android上从片段中居中放置标题工具栏?

如何在Android上从片段中居中放置标题工具栏?,android,android-layout,android-custom-view,android-toolbar,android-appbarlayout,Android,Android Layout,Android Custom View,Android Toolbar,Android Appbarlayout,对于特定的设计,我希望工具栏标题文本居中 我无法在片段中使其工作,尽管 我在一个活动中成功地做到了这一点,我按照这些步骤为工具栏创建了一个带有两个文本视图的自定义工具栏小部件,并将其设置为SupportActionBar,将工具栏的xml作为包含在活动的布局xml中。大概是这样的: Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarCouponDetailed); setSupportActionBar(toolbar);

对于特定的设计,我希望工具栏标题文本居中

我无法在片段中使其工作,尽管 我在一个活动中成功地做到了这一点,我按照这些步骤为工具栏创建了一个带有两个文本视图的自定义工具栏小部件,并将其设置为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);

但是活动工具栏仍然以这种方式使用

无需为
片段
创建另一个
工具栏
,因为工具栏是
活动
和片段的一部分。应该只有一个工具栏

在每个
fragment
中使用下面的方法,或者创建
BaseFragment
并从
onCreate()调用方法


@Boss的可能副本:是的,我也读过那篇文章,但正如我解释的,我设法解决了活动工具栏中标题居中的问题,但我这里的问题是将工具栏的标题从片段中居中,只需为该片段使用另一个工具栏布局-这对您有用吗?您是否能够访问
片段中的
工具栏
?我已经为片段xml中包含的片段创建了另一个工具栏布局。在onCreateView()中,我存储了对工具栏的特定引用,然后可以在activityCreated()上使用它,我在其中调用:.setSupportActionBar(mToolbar),.getSupportActionBar().setDisplayShowCustomEnabled(true);&。(MainActivity)getActivity()上的getSupportActionBar().setDisplayShowTitleEnabled(false),但活动工具栏仍以这种方式使用
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);
}