0

我已经用我自己的布局创建了自定义标题栏。我希望在与水平中心对齐的标题栏中显示文本(= 与默认标题栏相同)。但这对我不起作用,我的文本仍然对齐到 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>
4

5 回答 5

3

对于重力和layout_gravity的简单理解:

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

android:layout_gravity => 设置视图或布局在其父级中的重力。

更多信息:Android 上的 Gravity 和 layout_gravity

现在,您需要android:gravity="center_horizontal"<TextView>.

于 2012-07-27T07:32:45.660 回答
1

将 android:layout_height="match_parent" 更改为 "wrap_content" 。它会起作用

 <TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:text="center"
    android:layout_gravity="center"></TextView>
于 2012-07-27T07:35:00.747 回答
0

这将起作用:

<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_widthandroid:gravity

于 2012-07-27T07:30:42.393 回答
0

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

使用此代码:

<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>

在代码中,我为此更改了 XML 的最后几行:

   android:layout_alignParentTop = "true"
   android:layout_centerHorizontal = "true"

第一行将 TextView 设置在视图的顶部,第二行将中心水平设置在顶部。

于 2012-07-27T07:43:20.553 回答
0

更改android:layout_gravity="center_horizo​​ntal"

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

 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");

}

它对我有用,让我知道它是否对你有用。

于 2012-07-27T07:43:28.107 回答