我正在制作一个动作栏,我设计了一个自定义操作栏但是该客户操作栏中的问题我使用了一个文本视图,我需要它作为中心。 这是我的自定义操作栏xml代码 -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:layout_height="50dp"
>
<TextView
android:id="@+id/title_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000"
android:textSize="20sp"
android:text="@string/app_name"
/>
</LinearLayout>
这是我的java代码,用于启用该活动的自定义操作栏。
ActionBar mActionBar = getActionBar();
mActionBar.setDisplayShowHomeEnabled(true);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.customactionbar, null);
TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
getActionBar().setBackgroundDrawable(
new ColorDrawable(Color.parseColor("#f8f8f8")));
Typeface fontt = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
mTitleTextView.setTypeface(fontt);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
答案 0 :(得分:1)
您可以在xml中使用Relative Layout
尝试此操作
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/title_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:layout_centerHorizontal="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000"
android:textSize="20sp"
android:text="@string/app_name"/>
</RelativeLayout>
答案 1 :(得分:0)
尝试将布局更改为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_horizontal" >
<TextView
android:id="@+id/title_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000"
android:textSize="20sp" />
希望这会奏效。
答案 2 :(得分:0)
我是Android新手,但我认为它有效
你需要什么
1)relativeLayout
代替LinearLayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:layout_height="50dp"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="@string/app_name"
android:textColor="#000000"
android:typeface="serif" />
</RelativeLayout>
答案 3 :(得分:0)
为什么使用布局?为什么在customactionbar.xml文件中没有android:gravity="center"
且宽度和高度设置为match_parent
的单个TextView?
答案 4 :(得分:0)
尝试在TextView中添加三个属性,删除任何其他重力属性
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
希望有所帮助