我在活动中显示来自DB的数据。我想在底部有一个桌子和按钮。对于数据,我认为TableLayout是最佳选择。我将TableLayout添加到HorizontalView& ScrollView使其垂直滚动&水平。我动态添加所有行 - 包括标题。这部分工作正常。
我想要的是当内容小于屏幕宽度时,它应该占据整个屏幕宽度。例如。如果一张桌子适合纵向模式,那么在景观模式中,它们将是右边的空白区域。我不希望那个空间变空,而是占据所有列。如果行宽大于屏幕宽度,则根本没有问题 - 因为出现了horiontal滚动条。
我尝试了一些变化,但没有任何帮助。知道要做什么设置来使用所有空间(如果有所有avbl)&展示下。
是的,还有1个水平滚动条问题,它出现在最后一行。我想要它 出现在最后一行下方 - 因此最后一行的边框是可见的。我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical">
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scrollbars="horizontal|vertical">
<HorizontalScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginBottom="10dp" >
<TableLayout android:id="@+id/browseTable" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginBottom="20dp"
android:background="#FF0000" android:stretchColumns="1,2,3">
</TableLayout>
</HorizontalScrollView>
</ScrollView>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal" android:gravity="center"
android:layout_marginTop="15dp">
<Button android:id="@+id/browseAddBtn" android:text="Add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="10dp" />
<Button android:id="@+id/browseViewBtn" android:text="Edit" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="10dp" />
<Button android:id="@+id/browseReturnBtn" android:text="Return" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
输出:
答案 0 :(得分:4)
我在解决您的问题时找到了一件事,在 HorizontalScrollView 中使用 TableLayout 。当我们在Horizontal Scroll View中使用Table Layout时, android:stretchColumns 不起作用。因此,当旋转屏幕或列的宽度数据较少时,您将获得空白区域。
我希望你明白这一点。我试图通过用其他一些替换水平滚动视图来解决这个问题。如果我得到解决方案,我会发布答案。再见。
修改强>
嗨 Tvd 最后我找到了解决问题的方法。在下面对XML布局文件进行更改。
在<HorizontalScrollView>
使用
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
如果您希望拉伸所有列,请在 TableLayout 中使用stretchColumns = "*"
。
再见。 : - )
答案 1 :(得分:0)
我做了一些改变。您的一些问题将通过以下布局代码来解决
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scrollbars="horizontal|vertical" >
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp" >
<TableLayout
android:id="@+id/browseTable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:background="#FF0000" >
</TableLayout>
</HorizontalScrollView>
</ScrollView>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
style="@android:style/ButtonBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/browseAddBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:text="Add" />
<Button
android:id="@+id/browseViewBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:text="Edit" />
<Button
android:id="@+id/browseReturnBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Return" />
</LinearLayout>