我正在使用tablelayout,其中每行都有许多复选框,并且我正在使用自定义适配器。列确实在屏幕上均匀展开。在父布局上,我还有一系列“check / uncheck all”类型复选框,它们与listview复选框完美对齐。我的问题是我无法获得列标题,以便复选框与列对齐。他们有太多或太少的蠕变,更不用说在手机和平板设备上工作了。我怀疑这个问题可能是由与最左边的复选框相关联的文本引起的,唯一的复制文本是与之关联的文本。
这是检查/取消选中所有复选框的xml,并且排队正常。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_blue"
android:orientation="horizontal">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkBox1"
android:layout_height="match_parent"
android:layout_weight="1"
android:width="60dp"
android:background="@color/light_blue"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="Ck all"
android:textSize="15dp"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkBoxI"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/light_blue"
android:focusable="false"
android:focusableInTouchMode="false" />
<CheckBox
android:id="@+id/checkBoxII"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/light_blue"
android:focusable="false"
android:focusableInTouchMode="false" />
等
这是列标题,不排列。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_blue"
android:orientation="horizontal">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_height="match_parent"
android:layout_weight="1"
android:width="60dp"
android:gravity="center"
android:background="@color/light_blue"/>
<TextView
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/light_blue"
android:gravity="center"
android:text="I"/>
<TextView
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1"
android:background="@color/light_blue"
android:text="I"/>
等
这是另一种不排队的尝试。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_blue"
android:orientation="horizontal">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_height="match_parent"
android:width="60dp"
android:layout_weight="1"
android:text=""
android:gravity="center"
android:background="@color/light_blue"
android:focusable="false"
android:focusableInTouchMode="false"/>
<TextView
android:id="@+id/keycode"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1"
android:background="@color/light_blue"
android:text="I"
android:textStyle="bold" />
<TextView
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1"
android:background="@color/light_blue"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="II"
android:textStyle="bold" />
等
我尝试了很多不同的文本对齐组合,甚至尝试强制列宽,这当然不会跨设备工作。我已经花了一整天时间,但仍然没有任何线索。任何帮助表示赞赏。
答案 0 :(得分:0)
好的,这是我的愚蠢。我忘记了当我切割和粘贴时,我已经将LinearLayouts放在桌子的行周围。删除那些Linearlayouts后,事情按预期排列。我确实必须给第一列提供textize parm,否则与最左边的复选框相关联的文本的可变宽度会弄乱其余列的对齐。我只需要使文本大于该列中的任何文本。