2

我有一个 ListView,它在 View 顶部包含一个 LinearLayout,用作标题栏。列表可以滚动,但标题栏保持不变。在标题栏中,我想要一个“后退”按钮,但这会导致标题文本变得不居中:

未居中的文本 我添加了第二个相同大小的按钮(在标题栏的右侧)并使其不可见,以便充当文本居中的“间隔”,但随后我松开了很多标题栏真实-财产:

在此处输入图像描述

有没有办法告诉Android将标题文本居中并忽略后退按钮?也许这就是生活的本来面目,但我想我会先让每个人都运行它,然后再继续使用一个笨拙的第二个隐形按钮或其他东西。谢谢

4

7 回答 7

2

代替 LinearLayout,您可以使用 RelativeLayout 作为标题。并使用布局参数,以便:

  • 后退按钮与其父级的左边缘对齐。
  • TextView 将整个父级 (LayoutParam.FILLPARENT) 与重力 CENTER
于 2012-12-20T11:21:20.983 回答
2

哟可以使用相对布局而不是线性布局,

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffffaa" >

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="false"
            android:gravity="center"
            android:text="Button" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="false"
            android:gravity="center"
            android:paddingLeft="100dp"
            android:paddingRight="100dp"
            android:text="Header Title Embiggeden"
            android:textSize="20dp" />
    </RelativeLayout>
于 2012-12-20T11:24:59.320 回答
2

这是给您的。我在我的项目中这样做了。

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#FF00FF"
            android:orientation="horizontal" >

        <Button
            android:id="@+id/testbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Back" >
        </Button>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Header"
            android:gravity="center_horizontal"
            android:textSize="30sp" ></TextView>
       </RelativeLayout>

        <ListView
            android:id="@id/android:list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginTop="40dp"
            android:divider="@android:color/transparent"
            android:dividerHeight="10sp" >
        </ListView>



    </RelativeLayout>

这是您需要的,并根据您的需要更改第二个 RelativeLayout 的颜色。

于 2012-12-20T11:57:03.857 回答
1

然后尝试使用Relative Layout,文字在

android:layout_centerHorizontal="true"

和两个按钮

1.android:layout_toLeftOf="text id" 
2.android:layout_toRightOf="text id"
于 2012-12-20T11:21:04.880 回答
1

代替.set 文本视图属性relativelayout并 设置按钮linearlayoutcenterinvertical=truealignParent=left.

于 2012-12-20T11:25:10.600 回答
1

设置 TextView 的 padding-left 等于不可见的按钮宽度

于 2012-12-20T11:27:03.177 回答
1

您可以使用相对布局而不是线性布局

<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="#00ff00">

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:gravity="center" android:maxLines="1" 
        android:ellipsize="end" android:layout_centerInParent="true"/>

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" android:layout_centerVertical="true"/>

</RelativeLayout>

或者你可以使用 FrameLayout

<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="#00ff00">

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" />

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>

    </FrameLayout>
于 2012-12-20T11:35:50.380 回答