Итак, у меня есть TableLayout
, который я хочу поместить в ScrollView. Но у меня есть проблема:Настройка макета в нижней части ScrollView?
The TableLayout изначально пуст, и я программно добавляю к нему TableRows
, нажимая кнопку. Это отлично работает, если я положил TableLayout
в ScrollView
как обычно (т. Е. Когда я прокручиваю, он отлично работает).
Но я хочу сделать так, чтобы TableLayout находился в нижней части ScrollView
. Поэтому каждый раз, когда я добавляю TableRow
, последняя ячейка всегда будет выровнена в нижней части родительского ScrollView. (вроде того, как работают мобильные чаты - когда вы нажимаете send, ваше сообщение помещается внизу, а все остальные сообщения выдвинуты вверх).
Что происходит, если я использую android:layout_gravity="bottom"
, чтобы попытаться достичь этого, я не могу прокручивать вверх, поэтому я не могу видеть ни одну из строк, которые выталкиваются вверх из вида экрана. Тем не менее, я могу прокрутить вниз по какой-то причине (в пустоту), что не должно быть возможным, поскольку последний TableRow
должен быть внизу.
Это соответствующий код XML (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:layout_gravity="center"
android:background="@android:color/black"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_gravity="center"
android:layout_marginTop="0dp"
android:layout_weight="0.1"
android:orientation="horizontal" >
<!-- 2 Buttons here -->
</LinearLayout>
<TextView
<!-- attributes of textView> -->/>
<ScrollView
android:id="@+id/tableScrollView"
android:layout_width="match_parent"
android:layout_weight="0.7"
android:layout_height="0dip"
android:scrollbars="none"
android:orientation="vertical"
android:background="@drawable/stripes_background" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom">
<TableLayout
android:id="@+id/outputTable"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:divider="@drawable/table_divider"
android:showDividers="middle">
</TableLayout>
</RelativeLayout>
</ScrollView>
<Button
<!-- Button attributes --> />
</LinearLayout>
Делитель: фона: 3
Вы можете использовать RelativeLayout вместо LinearLayout, а затем использовать атрибут alignparent_bottom. Надеюсь, это поможет вам –