2

私は TableLayout を使用しており、カスタマイズされた行で動的に入力していますが、今は android:stretchColumns android:shrinkColumns を使用すると機能しません。

私の活動のレイアウト:

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

    <TextView 
        android:text="@string/offline"
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:textStyle="bold"
    android:textSize="20sp"
    android:textColor="@color/dimGray"
    />

    <TableLayout
    android:id="@+id/download_full_table"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:stretchColumns="2"
    android:shrinkColumns="1"
    >
</LinearLayout>

私の行のレイアウト:

<?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:background="@color/white"
    android:orientation="vertical">

    <TableRow 
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="*">

        <TextView

            android:id="@+id/row_name"
            android:text="@string/empty" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="7dp"
            android:layout_marginRight="10dp"
             />

        <TextView
            android:id="@+id/row_size"
            android:text="@string/empty" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/lightGray"
            android:layout_marginTop="7dp"
             />

        <Button 
            android:id="@+id/row_btnDownload"
            android:text="@string/baixar"
            android:layout_width="wrap_content" 
            android:layout_height="35dp"
            android:background="@drawable/btn_baixar_verde"
            android:textColor="@color/white"
            android:textSize="13sp"
            android:layout_marginTop="7dp"
            android:layout_marginBottom="7dp"
            android:layout_marginLeft="7dp"
            android:layout_marginRight="15dp"
            android:textStyle="bold"

            />

    </TableRow>

</LinearLayout>

私のコード:

TableLayout tableFullDownload = (TableLayout) findViewById(R.id.download_full_table);

LayoutInflater inflater = getLayoutInflater();

ArrayList<MetaDados> fullList = getIntent().getParcelableArrayListExtra("metaDadosFull");

for (MetaDados metaDados : fullList) {
    LinearLayout row = (LinearLayout) inflater.inflate(R.layout.download_table_row, tableFullDownload, false);
    TextView name = (TextView) row.findViewById(R.id.row_name);
    TextView size = (TextView) row.findViewById(R.id.row_size);

    name.setText(metaDados.getName());

    long fileSize = metaDados.getSize();
    fileSize = (fileSize / 1024) / 1024;
    String sizeToShow = (fileSize + " MB");

    size.setText(sizeToShow);

    tableFullDownload.addView(row);
}

私が得たもの:

ここに画像の説明を入力

私が欲しいもの:

ここに画像の説明を入力

4

2 に答える 2

6

問題は、列を伸ばしたり縮めたりしようとしていたことですが、行の中にあるのは一意のビューであり、このビューの中で列を作成していました。この問題を解決する唯一の方法は、内部で weight 属性を使用することでした私の見解

 <TextView
            android:id="@+id/row_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:maxLines="2"
于 2013-04-01T13:11:03.253 に答える
0

その他のオプションとして、res/drawable の下にドローアブル リソースを作成できます。このようなものになることができます...

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/white"/>
    <stroke android:color="@android:color/black"
        android:width="1dp" />
</shape>

それを保存して、レイアウトの TextView の背景として設定します。

android:background="@drawable/bckgrd_border_textbox"
于 2014-12-04T10:59:54.060 に答える