这是我第一次使用Scrollview,我想用tablelayout 3x8行创建应用程序。行具有相同的高度和宽度,表可以垂直滚动。我怎么能在xml布局中这样做?谢谢你的帮助
<ScrollView android:id="@+id/layout"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_marginTop="5dip"
android:scrollbarStyle="outsideInset"
android:fillViewport="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
</TableLayout>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center">
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
</TableLayout>
</LinearLayout>
</ScrollView>
答案 0 :(得分:1)
这是您必须手动设置TableRow
高度的方法之一,以便您可以按如下方式实现此目的
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ScrollView android:id="@+id/layout"
android:layout_height="match_parent"
android:scrollbars="horizontal|vertical"
android:layout_width="match_parent"
android:layout_marginTop="5dip"
android:scrollbarStyle="outsideInset"
android:fillViewport="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent" android:orientation="vertical"
android:layout_height="match_parent">
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp">
<Button android:layout_weight="1" android:text="Button" android:layout_width="match_parent" android:layout_height="match_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<Button android:layout_weight="1" android:text="Button" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
</TableRow>
</LinearLayout>
</ScrollView>
</LinearLayout>
实现此目的的另一种方法是使用GridView
或RecyclerView
。 RecyclerView
是实现这一目标的最简单方法。我希望它为你工作。谢谢
答案 1 :(得分:1)
从LinearLayout
移除ScrollView
并尝试,如果它不起作用,请使用此
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp" >
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<EditText
android:layout_weight="1"
android:background="#F00"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#FF0"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<EditText
android:layout_weight="1"
android:background="#F0F"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</TableRow>
</TableLayout>
</ScrollView>