【问题标题】:Aligning listview under textview在textview下对齐listview
【发布时间】:2016-09-04 21:23:45
【问题描述】:

所以我试图在我的 textview 标题下对齐我的列表视图。然而,我从改变布局或重力或类似的东西所做的一切似乎现在将列表视图直接放在它们各自的标题下。 这是它现在的样子:

这是包含标题的 XML

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

    <!--Header aligned to top -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/header"
        android:gravity="center"
        android:background="#FC9">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Number"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"
            android:layout_weight="1"
            android:gravity="center_horizontal"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Distance"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"
            android:layout_weight="1"
            android:gravity="center_horizontal"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Time"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"
            android:layout_weight="1"
            android:gravity="center_horizontal"/>
    </LinearLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollbars="vertical"
        android:background="#005"
        android:layout_below="@+id/header"
        android:id="@+id/scrollableContents">

        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </RelativeLayout>
</LinearLayout>

这是具有列表视图的 XML:

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:textSize="20sp"
        android:textColor="#CCCCCC"
        android:text="Medium Text"
        android:id="@+id/Drive_Number_List"
        android:layout_weight="1"
        android:gravity="center_horizontal"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:textSize="20sp"
        android:textColor="#CCCCCC"
        android:text="Medium Text"
        android:id="@+id/Drive_Distance_List"
        android:layout_weight="1"
        android:gravity="center_horizontal"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:textSize="20sp"
        android:textColor="#CCCCCC"
        android:text="Medium Text"
        android:id="@+id/Drive_Time_List"
        android:layout_weight="1"
        android:gravity="center_horizontal"/>
</LinearLayout>

【问题讨论】:

    标签: android xml android-layout listview


    【解决方案1】:

    似乎有两种方法可以实现你想要的“对齐”。

    1. 按照listview项目对齐标题,如图所示: 使用 LinearLayout 作为标题。使用android:layout_weight = 1android:layout_width="0dp" 将三个textviews(在标题中)等分,并将@​​987654326@ 设置为最左边的textviewgravity="right" 用于最右边的textviewgravity="center_horizontal" 用于中间一个.

    2. 让所有内容在屏幕总宽度的三分之一处居中对齐:LinearLayout 用于标题和列表视图项。使用布局权重和0dp 宽度进行划分,如上。对所有项目使用gravity="center_horizontal"

    注意:使用“gravity”属性,而不是“layout_gravity

    【讨论】:

    • 对于#2,我只是将其添加到我已有的内容中吗?还是我要摆脱某些东西并添加它?因为目前一切都被推到了左侧。
    • 我已经尝试取出layout_alignParenTop 和其他类似于第一个列表视图项中的内容,但它仍然一直推到左侧。
    • 对于 #2,您应该将容器 RelativeLayouts 替换为 LinearLayout 用于标头和列表视图 xml。 layout_alignParentTopLinearLayout 子视图没有意义。
    • 我这样做了,但它会将驱动时间从屏幕上推开,我有一个 s7 边缘
    • 您是否还为所有视图使用了layout_weight = 1?并使用gravity="center_horizontal"?这应该为每个文本视图平均划分屏幕宽度(1/3),并将内部文本对齐在各自部分的中间。如果这不起作用,请使用您当前的 xml 更新问题。
    【解决方案2】:

    试试这个,如果你愿意,你可以改变填充

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <!--Header aligned to top -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/header"
        android:background="#FC9"
        android:orientation="horizontal">
    
        <TextView
            android:paddingLeft="10dp"
            android:paddingStart="10dp"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Number"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"/>
        <TextView
            android:gravity="center"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Distance"
            android:layout_toRightOf="@+id/Drive_Number"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"/>
        <TextView
            android:paddingRight="10dp"
            android:paddingEnd="10dp"
            android:gravity="right"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/Drive_Time"
            android:layout_toRightOf="@+id/Drive_Distance"
            android:layout_margin="4dp"
            android:textSize="18sp"
            android:textColor="#000"/>
    </LinearLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollbars="vertical"
        android:background="#005"
        android:layout_below="@+id/header"
        android:id="@+id/scrollableContents">
    
        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
    </RelativeLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多