4

tableRow 内に linearLayout があります。この linearLayout には、アプリに表示したいグラフが含まれています。tableRow の子は幅と高さを指定する必要がないというスレッドを読んだので、指定しましたが、グラフは表示されません。linearLayout を width=fill_parent および height=200dp に指定すると、linearlyLayout は tableRow の 1/3 のみを埋めます。

<?xml version="1.0" encoding="UTF-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_horizontal" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Record"
                android:textSize="18dp"
                android:textStyle="bold"
                android:typeface="serif" >
            </TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_horizontal" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.3"
                android:text="Name:"
                android:textStyle="bold"
                android:typeface="serif" >
            </TextView>

            <EditText
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.7"
                android:ems="10"
                android:singleLine="true" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_horizontal" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.3"
                android:text="Date:"
                android:textStyle="bold"
                android:typeface="serif" >
            </TextView>

            <TextView
                android:id="@+id/editRecordDate"
                android:layout_width="0dp"
                android:layout_weight="0.7"       
                android:layout_height="wrap_content" />
        </TableRow>


        <TableRow
            android:id="@+id/tableRow9"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <LinearLayout
                android:id="@+id/soundaomplitude_graphViewLinearLayout"
                android:paddingTop="4dip" >    //if I specify nothing then nothing is displayed, if I set width = fill_parent and height = 200dp, then only 1/3 of the space is occupied

            </LinearLayout>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow10"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <Button
                android:id="@+id/saveEditRecord"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".3"
                android:text="Save" />

            <Button
                android:id="@+id/deleteEditRecord"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".3"
                android:text="Delete" />

            <Button
                android:id="@+id/cancelEditRecord"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_weight=".3"
                android:text="Cancel" />
        </TableRow>
    </TableLayout>

</ScrollView>
4

3 に答える 3

14

linearLayoutの重みを1(または任意の数)に設定するだけであることがわかりました

<LinearLayout
                android:id="@+id/soundaomplitude_graphViewLinearLayout"
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:paddingTop="4dip" />
于 2012-08-07T01:19:10.000 に答える
1

TableRow は LinearLayout として機能するように見えるため、TableRow 内にネストするのは冗長に思えます。Eclipseでも、それは「役に立たない」と言われています。したがって、LinearLayout の代わりに、ビュー (任意のビュー) を直接 TableRow 内に含めることができます。表示されない場合は、他に問題がある可能性があります。

于 2012-08-06T22:21:35.583 に答える
-1

TableLayoutがコンテンツを管理する方法についてもう一度お読みください。特に、子ビューのlayout_widthを無視することに注意してください。

于 2012-08-06T22:34:29.410 に答える