Android列表行tablelayout问题

时间:2011-08-25 16:50:43

标签: android padding tablelayout

我一直在摆弄近一个小时但没想出来,所以寻求一些帮助。

正如您在我的图片中看到的那样,第二行没有显示复选框。由于篇幅较长,它已被推离屏幕右侧。

rows

我想要的是左边的图像总是在那个地方,而右边的复选框总是在那个地方。中间的标题文本应该适合包装到所需数量的两个东西。

我确实通过设置'Ems'属性使其工作,但我不认为这是解决此问题的正确方法。

这是XML:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp">
    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/bg_ffa_1" />
</LinearLayout>

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TableLayout 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" 
        android:stretchColumns="1">
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout 
                android:orientation="vertical" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="5dp">
                <TextView
                    android:id="@+id/article_row_title_label"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:textColor="#3A3C3B"
                    android:textSize="12dp"
                    android:textStyle="bold"
                    android:inputType="textMultiLine"
                    android:text="Article 1" />
            </LinearLayout>
            <LinearLayout 
                android:orientation="vertical" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right">
                <CheckBox 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </TableRow>
    </TableLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

使用relative layout可能会更好。

答案 1 :(得分:0)

啊!我已经怀疑了。我一想到这个问题,就一定要提出这个问题。

关键是要添加

android:layout_weight="1"

到包装textview的线性布局,当你知道时很简单!

答案 2 :(得分:0)

listview项目的这种布局应该可以获得所需的结果:

<?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="wrap_content">
  <ImageView    android:id="@+id/myImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"/>
  <TextView     android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/myImage"/>
  <CheckBox     android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"/>
</RelativeLayout>