Android自定义标题栏-居中文本

Android自定义标题栏-居中文本,android,customization,titlebar,Android,Customization,Titlebar,我用自己的布局创建了自定义标题栏。我希望标题栏中的文本与水平中心对齐(=与默认标题栏相同)。但这对我来说不起作用,我的文本仍然被贴在fitlebar的顶部,而不是中间。你能给我一些建议吗 我正在使用以下代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fil

我用自己的布局创建了自定义标题栏。我希望标题栏中的文本与水平中心对齐(=与默认标题栏相同)。但这对我来说不起作用,我的文本仍然被贴在fitlebar的顶部,而不是中间。你能给我一些建议吗

我正在使用以下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_gravity="center_vertical"
        android:paddingLeft="15dip"
    />
</LinearLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_alignParentTop = "true"
        android:layout_centerHorizontal = "true"
    />
</RelativeLayout>

这将起作用:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/top_back">
<TextView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/title"
    android:gravity="center_vertical"
    android:paddingLeft="15dip"
/>

通过更改,
android:layout\u width
android:gravity

这将起作用:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/top_back">
<TextView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/title"
    android:gravity="center_vertical"
    android:paddingLeft="15dip"
/>


通过更改,
android:layout\u width
android:gravity

简单了解重力和布局重力:

android:gravity=>设置其上使用的视图内容的重力

android:layout_gravity=>设置父视图或布局的重力

更多信息:


现在,您需要在
中包含
android:gravity=“center\u horizontal”
,以便简单了解重力和布局重力:

android:gravity=>设置其上使用的视图内容的重力

android:layout_gravity=>设置父视图或布局的重力

更多信息:


现在,您需要在您的
中包含
android:gravity=“center\u horizontal”

将android:layout\u height=“match\u parent”设置为“包装内容”。它会起作用的

 <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:text="center"
    android:layout_gravity="center"></TextView>

将android:layout\u height=“match\u parent”更改为“包装内容”。它会起作用的

 <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:text="center"
    android:layout_gravity="center"></TextView>

您可以使用RelativeLayout而不是LinearLayout。RelativeLayout可以更好地处理视图的属性

使用此代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_gravity="center_vertical"
        android:paddingLeft="15dip"
    />
</LinearLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_alignParentTop = "true"
        android:layout_centerHorizontal = "true"
    />
</RelativeLayout>

第一行在视图顶部设置文本视图,第二行在顶部设置水平中心。

您可以使用RelativeLayout而不是LinearLayout。RelativeLayout可以更好地处理视图的属性

使用此代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_gravity="center_vertical"
        android:paddingLeft="15dip"
    />
</LinearLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/top_back">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/title"
        android:layout_alignParentTop = "true"
        android:layout_centerHorizontal = "true"
    />
</RelativeLayout>

第一行在视图顶部设置文本视图,第二行在顶部设置水平中心。

Changeandroid:layout\u gravity=“center\u horizontal”

请看一下代码,需要以完全相同的方式使其位于中心

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.playing_video);  // Actual Layout Name

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
            R.layout.custom_layout); // Layoutname of Title Text

    TextView titleText= (TextView) findViewById(R.id.title);


    titleText.setText("Your Text");
}


它对我有效,如果对你有效,请告诉我。

更改android:layout\u gravity=“center\u horizontal”

请看一下代码,需要以完全相同的方式使其位于中心

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.playing_video);  // Actual Layout Name

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
            R.layout.custom_layout); // Layoutname of Title Text

    TextView titleText= (TextView) findViewById(R.id.title);


    titleText.setText("Your Text");
}


它对我有效,如果对您有效,请告诉我。

您是否尝试过为textview设置layout_gravity=“center”?另一种方法是设置其布局\u width=“fill\u parent”和gravity=“center”,然后尝试android:gravity=“center\u vertical”您尝试过为textview设置布局吗?另一种方法是设置其布局\u width=“fill\u parent”和gravity=“center”,然后尝试android:gravity=“center\u vertical”