【问题标题】:Android - LinearLayout in ScrollView in RelativelayoutAndroid - 相对布局中滚动视图中的线性布局
【发布时间】:2011-04-14 18:08:47
【问题描述】:

我的布局有点问题。 我制作了 RelativeLayout,在其中放置了两个 LinearLayout(1 和 2),并在它们之间放置了带有 LinearLayout 的 ScrollView。接下来,我将该 ScrollView 设置为放置在 linearLayout2 之下和 linearLayout1 之上。但是 ScrollView 内部的 LinearLayout 没有设置为它的父级。

这里是代码,也许我犯了一个错误:

<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>

任何想法,为什么 ScrollView 内的 LinearLayout 比 ScrollView 大?

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

【问题讨论】:

    标签: android scrollview android-linearlayout android-relativelayout


    【解决方案1】:

    好的,我成功了。 我所要做的就是将 ScrollView 内部的 LinearLayout 设置为

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

    ScrollView 到

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

    最后我将该 ScrollView 放入新的 LinearLayout 中,参数如下:

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

    因此,ScrollView 及其子布局将按钮设置为水平居中,而外部 LinearLayout 将它们设置为垂直居中。 :-)

    【讨论】:

      【解决方案2】:

      尝试将lin2layout_width 更改为wrap_content 而不是fill_parent

      【讨论】:

      • 问题不在于宽度,而在于高度,其中 lin2 的高度大于其父级 - ScrollView
      【解决方案3】:

      试试这个代码,我认为这是最好的解决方案

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多