可能重复:
Android table view
我和一年前的asked here几乎有同样的问题 - 如何以一种很好的方式实现表视图小部件,比如this screenshot。这个问题没有一个好的答案,所以重新发布。
我使用ListView
作为其行LinearLayout
,其中包含多个TextView
元素和一个ImageView
。但问题是每行在列宽方面完全独立于其他行。如果一行中的列的文本比另一行中的文本长,则两行不会垂直对齐。并且GridView
似乎不适合我的情况,因为它旨在显示存储在列表中的同质数据,并将其显示在列中 - 如图片网格。知道如何实现这一点吗?感谢。
更新
好的,我刚刚找到了解决方案here。在我的表格行的线性布局中,尽管设置了android:layout_weight
,但我错误地将android:layout_width
设置为wrap_content
。将其设置为0dip
使得LinearLayout中的所有TextView在每一行中具有相同的宽度。这是我的行的例子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="6dip">
<TextView
android:id="@+id/toptext"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="2"
android:textSize="24sp"
/>
<TextView
android:id="@+id/bottomtext"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="3"
android:textSize="24sp"
/>
<ImageView
android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/play_1"
android:clickable="true"
/>
</LinearLayout>
答案 0 :(得分:0)
要计算所需的单元格宽度,表格必须根据数据知道其所有行和单元格宽度。 ListView
不会立即知道所有信息,因此无法进行此类计算。这是两个解决方案,恕我直言。
ListView
行项目的固定宽度。这种方法将消耗尽可能低的资源,并且能够支持无限列表。TableLayout
的行为与ListView
相似(至少在视觉上)。 Here is我的答案如何实现它。但是这个解决方案只有在表没有很多行时才会很好(我认为&lt; 100是好的),因为它会立即加载所有日期,甚至在特定时间内看不见。