我正在为Android设备创建一个应用程序,我正在尝试在LinearLayout中使用ScrollView,但是当我尝试这样做时,ScrollView会占用LinearLayout中ScrollView之后的所有空间和元素。
例如:
如果ScrollView不是“满”:
如果ScrollView是“已满”:
你可以看到按钮消失...
以下是此活动的代码:
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_marginLeft="50dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@drawable/linearlayoutbackground" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nom_des_joueurs"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_marginBottom="30dp" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/llPlayersName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/okPlayersName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/ok"
android:background="@drawable/backgroundbutton"
android:layout_marginTop="30dp" />
</LinearLayout>
在LinearLayout中添加ScrollView中的元素后。
任何解决方案?
感谢。
答案 0 :(得分:9)
尝试以下方法:
android:layout_height="0dp"
android:layout_weight="1"
这会告诉您的ScrollView获取其他元素未占用的所有剩余空间。
答案 1 :(得分:1)
你有android:layout_height="wrap_content"
作为你的身高。这意味着高度与其内部的内容一样高。如果你不想让它占据整个地方你可以给它重量(如上面的答案)或者你可以用dp设置你的高度。例如:
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_marginLeft="50dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@drawable/linearlayoutbackground"
android:weightSum="1.5" >
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight = "0.2"
android:text="@string/nom_des_joueurs"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_marginBottom="30dp" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight = "1">
<LinearLayout
android:id="@+id/llPlayersName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/okPlayersName"
android:layout_width="match_parent"
android:layout_height="0"
android:layout_weight = "0.3">
android:text="@string/ok"
android:background="@drawable/backgroundbutton"
android:layout_marginTop="30dp" />
你可以看到我给了线性布局一个“总和”,他的所有孩子都给了重量。 清楚吗?这是你需要的吗?