2011-04-14 105 views
3

我有一个布局小问题。 我制作了RelativeLayout,其中我将两个LinearLayouts(1和2)和它们之间的ScrollView与LinearLayout放在一起。接下来,我将ScrollView设置为linearLayout2和linearLayout1之上。但是ScrollView中的LinearLayout没有设置为父级。Android - LinearLayout在ScrollView中的Relativelayout

下面的代码,也许我犯了一个错误:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:padding="6dip" 
     android:layout_alignParentTop="true" 
     android:id="@+id/lin1" 
     android:layout_weight="1"> 

</LinearLayout> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_weight="1" android:id="@+id/lin3" 
     android:layout_height="60dip">   

</LinearLayout> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:scrollbars="horizontal" 
android:layout_below="@id/lin1" 
android:layout_above="@id/lin3" android:id="@+id/ScrollView"> 

<LinearLayout 
     android:layout_width="fill_parent"      
     android:orientation="vertical" 
     android:id="@+id/lin2" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center_vertical|center_horizontal"> 

    <Button android:text="@string/button1" 
     android:id="@+id/button1" 
     android:layout_gravity="center" 
     android:layout_width="280dip" 
     android:layout_height="60dip"> 
    </Button> 

    <Button android:text="@string/button2" 
     android:id="@+id/button2" 
     android:layout_gravity="center" 
     android:layout_width="280dip" 
     android:layout_height="60dip"> 
    </Button> 

    <Button android:text="@string/button3" 
     android:id="@+id/button3" 
     android:layout_gravity="center" 
     android:layout_width="280dip" 
     android:layout_height="60dip"> 
    </Button> 

    <Button android:text="@string/button4" 
     android:id="@+id/button4" 
     android:layout_gravity="center" 
     android:layout_width="280dip" 
     android:layout_height="60dip"> 
    </Button> 


</LinearLayout> 
</ScrollView> 

任何想法,为什么滚动型的LinearLayout里面比大滚动型?

编辑: 到目前为止,我已经注意到,当我设置layout_gravity =“center_vertical”时,ScrollView内部的LinearLayout向外移动。看起来设置中心是指主布局(RelativeLayout)。

回答

5

好吧,我已经做到了。 所有我需要做的是设置的LinearLayout是滚动型的内部

layout_width="wrap_content" 
layout_gravity="center_horizontal" 
android:orientation="vertical" 

了滚动到

layout_width="fill_parent" 
layout_gravity="center_horizontal" 
layout_height="wrap_content" 

,并在结束时,我已经把那个滚动型到新的LinearLayout与参数如下:

layout_width="fill_parent" 
layout_height="fill_parent" 
gravity="center_vertical" 
orientation="vertical" 

所以ScrollView和它的子布局设置按钮中心horizo​​ntaly和外部LinearLayout设置它们中心垂直年。 :-)

2

尝试更改的lin2wrap_content而不是fill_parent

+0

问题不宽,但是高度,在LIN2的高度大于它的父 - 滚动型 – Seraphis 2011-04-14 22:38:18

0

试试这个代码,我觉得这是最好的sollution

<HorizontalScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:orientation="vertical" > 
    </HorizontalScrollView>