我无法在底部显示LinearLayout以滚动视图

时间:2012-03-30 05:55:20

标签: android android-layout

我正在使用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:background="@drawable/background"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/title" >
</RelativeLayout>

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none">

    <RelativeLayout
        android:id="@+id/rel2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/button1"
            android:layout_width="250dp"
            android:layout_height="50dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:background="@drawable/bkg_gold_btn"
            android:text="Button 1" />

        /*--------------------------------*/
        /* there are 12 more Buttons Here */
        /*--------------------------------*/
        <Button
            android:id="@+id/button10"
            android:layout_width="250dp"
            android:layout_height="50dp"
            android:layout_below="@+id/button9"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/bkg_gold_btn"
            android:text="Button 14" />
    </RelativeLayout>
</ScrollView>

  <LinearLayout
      android:id="@+id/add_layer"
      android:layout_width="fill_parent"
      android:layout_height="50dip"
      >
  </LinearLayout>

</LinearLayout>

但是当我运行代码时,我无法在Bottom看到LinearLayout。 请帮帮我。

5 个答案:

答案 0 :(得分:4)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:orientation="vertical" >

<RelativeLayout
android:id="@+id/reltop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@drawable/title" >
</RelativeLayout>

<ScrollView
android:layout_below="@id/reltop"
android:layout_above="@id/add_layer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none">

<RelativeLayout
    android:id="@+id/rel2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button1"
        android:layout_width="250dp"
        android:layout_height="50dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:background="@drawable/bkg_gold_btn"
        android:text="Button 1" />

    /*--------------------------------*/
    /* there are 12 more Buttons Here */
    /*--------------------------------*/
    <Button
        android:id="@+id/button10"
        android:layout_width="250dp"
        android:layout_height="50dp"
        android:layout_below="@+id/button9"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/bkg_gold_btn"
        android:text="Button 14" />
</RelativeLayout>
</ScrollView>

<LinearLayout
  android:id="@+id/add_layer"
  android:layout_width="fill_parent"
  android:layout_alignParentBottom="true"
  android:layout_height="50dip"
  >
</LinearLayout>

</RelativeLayout>

答案 1 :(得分:2)

你看不到这个LinearLayout因为,Parent LinearLayout不可滚动,而Scrollview覆盖了所有的屏幕,为了解决这种情况,你有两个选择,要么使用权重将ScrollView的高度固定到屏幕的某个固定部分,或像素。或者将RelativeLayout作为LinearLayout和Scrollview的父级。在父级底部设置LinearLayout,并滚动LinearLayout的视图。

答案 2 :(得分:1)

在LinearLayout中添加android:gravity="bottom" android:layout_gravity="bottom"并尝试在LinearLayout中添加组件。

或用相对布局替换那个线性布局,如下所示:

 <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom" >

        <Button
           ... />
    </RelativeLayout>

答案 3 :(得分:1)

您无法看到Bottom LinearLayout,可能是因为ScrollView占用了屏幕的剩余空间以显示其中的n个按钮会导致您给它设置wrap_content的高度。

您可以使用LinearLayout的weightSum属性来定义视图将覆盖多少屏幕区域。

<?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:weightSum="10"
android:background="@drawable/background" 
android:orientation="vertical" > 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_weight="1"
    android:layout_height="0dp" 
    android:background="@drawable/title" > 
</RelativeLayout> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_weight="8"
    android:layout_height="0dp"
    android:scrollbars="none"> 

    <RelativeLayout 
        android:id="@+id/rel2" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" > 

    </RelativeLayout> 
</ScrollView> 

  <LinearLayout 
      android:id="@+id/add_layer" 
      android:layout_width="fill_parent" 
      android:layout_weight="1"
      android:layout_height="0dp"
      > 
  </LinearLayout> 

</LinearLayout> 

答案 4 :(得分:0)

你可以将底部的LinearLayout移动到RelativeLayout(id / rel2)的底部,然后你会看到它