我无法对齐操作栏的标题,因此它位于中间

时间:2018-01-05 14:13:31

标签: android xml android-layout android-studio

enter image description here我尝试将文本写在操作栏中间 ,我通过调用函数使用toolbar.xml  哪个是xml文件内部 我多次尝试找到解决方案,但没有任何结果 我使用了很多函数,比如函数setGravity(Gravity.CENTER) 和setGravity(Gravity.CENTER_HORIZONTAL)一起使用setGravity(Gravity.CENTER_VERTICAL),我也试过了一些xml代码的重力属性。

    See the Java code :

       private void initToolbar(){
            Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
            TextView mToolBarTextView = (TextView) 
            findViewById(R.id.text_view_toolbar_title);
            setSupportActionBar(mToolbar);
            if (getSupportActionBar() != null){
                getSupportActionBar().setHomeButtonEnabled(true);
                getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                getSupportActionBar().setDisplayShowTitleEnabled(false);
            }
            // mToolbar.setNavigationIcon(R.drawable.btn_back);
            mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
              @Override
                public void onClick(View v){
                    onBackPressed();
                }
            });
             mToolBarTextView.setText(R.string.title_mc);
            mToolBarTextView.setTextAppearance(this,R.style.TextBarStyle);
              //  mToolBarTextView.setTypeface(Typeface.DEFAULT_BOLD);
             // mToolBarTextView.setGravity(Gravity.CENTER_VERTICAL);
            // mToolBarTextView.setGravity(Gravity.CENTER_HORIZONTAL);
            // mToolBarTextView.setGravity(Gravity.CENTER);

            //   mToolBarTextView.setGravity(Gravity.CENTER_HORIZONTAL);
        }


    // See the my style : 
      <style name="TextBarStyle" parent="TextView.DefaultStyle">
            <item name="android:textStyle">bold</item>
            <item name="android:textColor">#000000</item>
        </style>


    // Look at the toolbar xml : 

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        app:titleTextAppearance="@style/Toolbar.TitleText"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_gravity="center"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary">
        <TextView
            android:id="@+id/text_view_toolbar_title"
            android:layout_centerInParent="true"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="@color/text_color"
            android:textSize="@dimen/tool_bar_text_size"
            android:gravity="center_horizontal|center_vertical" />
    </android.support.v7.widget.Toolbar>


    // here is activity xml : 
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".about_us.AboutUs">
        <include layout="@layout/toolbar"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:background="#ffffff"
            android:padding="10dp">
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="@string/about_us2"
                android:textSize="19sp"/>
            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="10dp"
                android:background="#000"/>
            <Button
                android:id="@+id/Button1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/about_us4"/>
            <Button
                android:id="@+id/Button2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/about_us5"/>
            <Button
                android:id="@+id/Button3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/about_us6"/>
            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="10dp"
                android:background="#000"/>

        </LinearLayout>
    </LinearLayout>

2 个答案:

答案 0 :(得分:1)

我知道这是一种黑客行为。但是会奏效。当导航按钮存在时,工具栏无法提供任何方法来准确地将标题对齐到工具栏的中心。根据该文件,我们可以使用&#34; Insets&#34;请参阅下面的代码。

 mToolBarTextView.setPadding(-mToolbar.getContentInsetStartWithNavigation(),0,0,0);

不要使用任何风格,请删除代码中的这一行并尝试

 mToolBarTextView.setTextAppearance(this,R.style.TextBarStyle);

根据文档  插图定义了这些组件的最小余量      *并可用于有效地将工具栏内容与众所周知的网格线对齐。

您可能需要向左或向右更改填充取决于RTL true或false。也许。 请尝试让我知道。

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.avezraj.testanimation.MainActivity">
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_gravity="center"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="60dp">
        <TextView
            android:id="@+id/text_view_toolbar_title"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="test1" />
        </RelativeLayout>
    </android.support.v7.widget.Toolbar>
</RelativeLayout>

只需使用此

的相对布局