2

Androidアプリケーション用にカスタムTableRowを作成したいと思います。私はLinearLayoutから始めました。これはまさに私が表示したいものですが、TableLayoutのTableRowとして表示します。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:weightSum="1" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.7"
            android:text="@string/Context" />

        <TextView
            android:id="@+id/ContextTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.3" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:weightSum="1" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.7"
            android:text="@string/SHUId" />

        <TextView
            android:id="@+id/SHUIdTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.3" />
    </LinearLayout>

    ...Others LinearLayouts with 2 TextViews...

</LinearLayout>

そこで、最初にこのコードをTableRow要素内に配置しようとしました。

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    ...LinearLayout code from above...

<TableRow />

この時点で、レイアウトはeclipseエディターに正しく表示されますが、メインのLinearLayoutにLint警告が表示されます:「このLinearLayoutレイアウトまたはそのTableRow親は役に立たない」

次に、OK TableRowはLinearLayoutのサブクラスであると言うと、メインのLinearLayoutを削除して、次のように彼のプロパティをTableRowに直接配置できます。

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp" >

    <LinearLayout >
        <TextView />
        <TextView />
    <LinearLayout />

    <LinearLayout >
        <TextView />
        <TextView />
    <LinearLayout />

    ...etc...

<TableRow /> 

しかし、レイアウトは正しく表示されなくなりました(ただし警告は表示されません)。最初の行だけが表示されます(最初の2つのTextViewが表示されます)。私は何が欠けていますか?

4

1 に答える 1

1

あなたTableRowの子供はTableLayout?そうでない場合は、使用するべきではありませんTableRow-それがなければTableLayout、それは単なる水平LinearLayoutです。

于 2012-08-03T06:25:51.773 に答える