我尝试将文本写在操作栏中间 ,我通过调用函数使用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>
答案 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>
只需使用此
的相对布局