【问题标题】:How to align headers above Listview如何在 Listview 上方对齐标题
【发布时间】:2016-02-19 00:16:06
【问题描述】:

我有一个带有 6 个标题的标题部分,位于列表视图上方,但是标题标题并不直接位于我的行数据上方,有些稍微偏离了。我已经厌倦了很多解决方案,但这非常棘手。一些建议会很棒

这是我的 list_item xml:

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:paddingTop="4dip"
 android:paddingBottom="6dip"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <TextView android:id="@+id/from"
     android:layout_width="50dip"
     android:layout_height="wrap_content"
      android:layout_below="@id/from"
       android:gravity="center"
    android:textColor="#0300f1"/>

 <ImageView
    android:id="@+id/imageView1"
     android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="hello"
        android:layout_toLeftOf="@+id/subject"
     />

 <TextView android:id="@+id/subject"
     android:layout_width="70dip"
     android:textColor="#000000"
      android:gravity="center"
     android:layout_height="wrap_content" android:layout_weight="1"/>

 <TextView android:id="@+id/date"
     android:layout_width="60dip"
     android:textColor="#d20015"
      android:gravity="center"
     android:layout_height="wrap_content"  android:layout_weight="1"/>


 <TextView android:id="@+id/mail"
     android:layout_width="60dip"
     android:textColor="#000000"
      android:gravity="center"
     android:layout_height="wrap_content"  android:layout_weight="1"/>

  <TextView android:id="@+id/roundscore"
     android:layout_width="60dip"
     android:textColor="#000000"
      android:gravity="center"
     android:layout_height="wrap_content"  android:layout_weight="1"/>

这是我的 list_item xml:

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" >

    <TextView
        android:id="@+id/textView1"
        android:text="HEADER1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:textSize="11dp"
        android:gravity="center"
       />

    <TextView
        android:id="@+id/textView2"
        android:text="HEADER2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
         android:textSize="11dp"
        android:gravity="center"
         />

    <TextView
        android:id="@+id/textView3"
        android:text="HEADER3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
         android:textSize="11dp"
        android:gravity="center"
         />

     <TextView
        android:id="@+id/textView4"
        android:text="HEADER4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
         android:textSize="11dp"
        android:gravity="center"
        />


     <TextView
        android:id="@+id/textView5"
        android:text="HEADER5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
         android:textSize="11dp"
        android:gravity="center"
        />
</LinearLayout>


<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:background="#E5E4E2"
    android:divider="#736F6E"
    android:dividerHeight="4px"
    android:padding="8dp"
    android:layout_weight="1.0"/>


   <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0"
         android:textSize="12dp"
         android:textColor="#2da6de"
         android:layout_centerVertical="true"

        />


 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="@dimen/bottom_bar_height"

    android:orientation="horizontal" >


 <Button
     android:id="@+id/button1"
    android:text="Refresh"
     android:layout_height="wrap_content"
     android:layout_width="fill_parent"
     android:textSize="11dp"
     android:layout_weight="1"
      />


  </RelativeLayout>

【问题讨论】:

  • 您能否提供一个屏幕截图来显示视图的具体问题?
  • postimg.org/image/z1zjdpqn9 谢谢 Sharj - 抱歉我不得不编辑数据,因为它是客户信息
  • 它在标题和列表视图适配器布局(子布局)中简​​单用户相同类型的布局。请记住,如果您在 listview 子布局中提供 padding,margin,则应为 header 提供相同的内容。

标签: java android xml android-layout listview


【解决方案1】:

我试一试,我不确定是否完全理解您的问题。但是您希望将字段与数据完美对齐。我无法发表评论,因为我没有足够的声誉。我认为这是因为您有 5 个字段,并且在您的一个项目的行中,您有 6 个数据要放置。因此,一方面您将屏幕划分为 6,另一方面划分为 5,但如果您放置 6 个这样的字段:

<?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"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER1"
        android:textSize="11dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER2"
        android:textSize="11dp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER3"
        android:textSize="11dp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER4"
        android:textSize="11dp" />


    <TextView
        android:id="@+id/textView5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER5"
        android:textSize="11dp" />
    <TextView
        android:id="@+id/textView6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="HEADER5"
        android:textSize="11dp" />
</LinearLayout>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="1"
        android:layout_weight="1"
        android:textColor="#0300f1"/>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:contentDescription="hello"
        android:layout_toLeftOf="@+id/subject"
        android:layout_weight="1"
        />


    <TextView android:id="@+id/subject"
        android:layout_width="0dp"
        android:textColor="#000000"
        android:text="1"
        android:gravity="center"
        android:layout_height="wrap_content" android:layout_weight="1"/>

    <TextView android:id="@+id/date"
        android:layout_width="0dp"
        android:text="1"
        android:textColor="#d20015"
        android:gravity="center"
        android:layout_height="wrap_content"  android:layout_weight="1"/>


    <TextView android:id="@+id/mail"
        android:layout_width="0dp"
        android:text="1"
        android:textColor="#000000"
        android:gravity="center"
        android:layout_height="wrap_content"  android:layout_weight="1"/>

    <TextView android:id="@+id/roundscore"
        android:layout_width="0dp"
        android:text="1"
        android:textColor="#000000"
        android:gravity="center"
        android:layout_height="wrap_content"  android:layout_weight="1"/>
    </LinearLayout>

它会起作用的。 编辑: 所以基本上你的 textView6 不在你的 LinearLayout 中。

【讨论】:

  • 您好,感谢您的回复,抱歉我粘贴了错误的代码版本,有一个textView6。
  • 您能否编辑并发布正确的代码供我测试;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2020-04-25
  • 2013-10-08
  • 1970-01-01
相关资源
最近更新 更多