下午好,
我在用户屏幕上逐渐生成一个列表,(现在列表位于滚动视图中,但可能不是最后的休息位置。)在滚动视图上方有几个按钮,在滚动视图下方是一个几个按钮。 Scrollview占据整个屏幕的中间位置。
现在,在生成列表时,它会进入scrollview下面的按钮。但我希望它停在顶端。同时寻找它始终显示最后一行,而不是新信息开始消失在底部。
我知道这可能令人困惑,所以如果您有任何疑问,请告诉我。
现在XML看起来有点像这样,它也按照这个顺序排列在屏幕上。
<Button
android:text="Ok"
android:id="@+id/buttonOk"
android:layout_height="wrap_content"
android:layout_width="75sp"
android:layout_below="@+id/textHoleNumber"
android:layout_alignParentRight="true"></Button>
<ScrollView <-- ***would like this to line up under the OK button***
android:layout_height="wrap_content"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_below="@+id/buttonMinus">
<TextView
android:id="@+id/textScoreCard"
android:layout_height="wrap_content"
android:text="Score card info goes here"
android:textSize="20sp"
android:layout_width="fill_parent"></TextView>
</ScrollView> <-- ***would like this to stay above linear layout***
<LinearLayout
android:layout_width="fill_parent"
android:id="@+id/linearLayout1"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:layout_height="wrap_content"
android:layout_width="0dip"
android:layout_weight="1"
android:id="@+id/buttonSave"
android:text="Save"></Button>
<Button
android:id="@+id/buttonReset"
android:layout_height="wrap_content"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_toRightOf="@+id/buttonSave"
android:layout_alignTop="@+id/buttonSave"
android:layout_alignBottom="@+id/buttonSave"
android:text="Reset"></Button>
</LinearLayout>
答案 0 :(得分:3)
始终在线性布局中使用Scrollview并给予android:layout_weight =“1”。试试下面的例子它会起作用..
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@null">
<LinearLayout android:id ="@+id/layout_above_scrollview" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<ScrollView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1">
<LinearLayout android:id ="@+id/layout_above_scrollview" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
// Your components........
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/add_app_done_layout" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_marginTop="5dp"
android:layout_marginLeft="50dp"
android:orientation="horizontal" android:layout_alignParentBottom="true">
<Button android:id="@+id/add_app_done" android:text="Done"
android:layout_width="100dp"
android:textStyle="bold" android:layout_height="wrap_content" />
<Button android:id="@+id/add_app_revert" android:text="Revert"
android:layout_width="100dp" android:layout_marginLeft="5dp"
android:textStyle="bold" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:2)
如果您正在谈论我的想法,请尝试在滚动视图的底部添加边距,并在线性布局的顶部添加负边距。例如:
<ScrollView android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="60sp">
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-60sp">
</LinearLayout>
对于添加新项目时滚动到滚动视图底部的问题,请查看How to scroll to bottom in a ScrollView on activity startup。
注意:这假设您的ScrollView及其下方的LinearLayout都包含在垂直LinearLayout中。