我想实现如下所示的屏幕布局,屏幕顶部有一个Scrollview,以及一个固定在屏幕底部的2个按钮块。我还希望按钮占据屏幕宽度的固定比例,并且在水平布局中使用了重量来实现这一点。
ScrollView行是从数据库表中填充的,可能包含太多行,无法在单个屏幕上显示。因此我只希望ScrollView占据屏幕顶部的固定比例,以便按钮始终显示在屏幕的底部。
我尝试在这里调整解决方案:Android ScrollView and buttons at bottom of the screen - 替换我自己的界面元素,但这导致ScrollView占据整个屏幕,而按钮根本不可见。我怀疑这是因为我的“layoutContainer”LinearLayout中的权重与建议的解决方案的设计相冲突。
我目前的代码如下。这会使ScrollView和Button变好,直到Scrollview变得太大 - 当发生这种情况时,按钮会从屏幕底部消失。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context="com.itm.timer.ItemActivity"
tools:ignore="MergeRootFrame" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:gravity="top"
android:text="@string/activity_meal_item_textview1"
android:textSize="16sp"
android:textStyle="bold" />
<ScrollView
android:id="@+id/scrollViewRecords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="75" >
<LinearLayout
android:id="@+id/linearLayoutRecords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/layoutContainer"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="2" >
</RelativeLayout>
<RelativeLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="20" >
<Button
android:id="@+id/btnMealPlan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/clipboard"
android:onClick="onClickMealPlan"
android:text="Show Meal Plan" />
<Button
android:id="@+id/btnStartTimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/btnMealPlan"
android:drawableLeft="@drawable/starttimer"
android:onClick="onClickStartTimer"
android:text="Set Reminders" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="2" >
</RelativeLayout>
</LinearLayout>
</LinearLayout>
如何实现我想要的任何想法,或者如何简化我的设计以达到在屏幕上固定位置容纳ScrollView和按钮的目的?
答案 0 :(得分:1)
尝试这样可以帮到你,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:padding="5dp"
android:text="MeatItem"
android:textSize="16sp"
android:textStyle="bold" />
<ScrollView
android:id="@+id/scrollViewRecords"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:background="@android:color/holo_blue_light" >
<LinearLayout
android:id="@+id/linearLayoutRecords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="ScoollView"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/layoutContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="10dp"
android:orientation="vertical" >
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_dark"
android:text="Button1"
android:textColor="@android:color/white" />
<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@android:color/holo_blue_dark"
android:text="Button2"
android:textColor="@android:color/white" />
<Button
android:id="@+id/btn3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@android:color/holo_blue_dark"
android:text="Button3"
android:textColor="@android:color/white" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context="com.itm.timer.ItemActivity"
tools:ignore="MergeRootFrame"
android:padding="10dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:text="@string/activity_meal_item_textview1"
android:textSize="16sp"
android:textStyle="bold" />
<ScrollView
android:id="@+id/scrollViewRecords"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<LinearLayout
android:id="@+id/linearLayoutRecords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/layoutContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_width="0dp"
android:layout_height="1"
android:layout_weight="0.10"/>
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.80"
android:orientation="vertical">
<Button
android:id="@+id/btnMealPlan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/clipboard"
android:onClick="onClickMealPlan"
android:text="Show Meal Plan" />
<Button
android:id="@+id/btnStartTimer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/starttimer"
android:onClick="onClickStartTimer"
android:text="Set Reminders" />
<Button
android:id="@+id/btnStartTimer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/starttimer"
android:onClick="onClickStartTimer"
android:text="Set Reminders" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1"
android:layout_weight="0.10"/>
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
只需使用layout_height =&#34; 0dp&#34;和layout_weight =&#34; 1&#34;在你的滚动视图中。