ScrollView的重量不适合我

时间:2016-04-05 06:18:51

标签: android scrollview

我有一个父类linearlayout,里面有两个scrollview,我在滚动视图中使用权重属性,但这对我不起作用,我的意思是它不提供任何滚动。这是代码,我怎样才能使它工作?

LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">

        <ScrollView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:scrollbars="horizontal"
            android:fillViewport="true"
            android:layout_weight="1"
            android:layout_marginRight="8dp">
        <LinearLayout
            android:id="@+id/linearLayoutSizes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="@dimen/product_detail_items_margin_left"
            >
        </LinearLayout>
        </ScrollView>

        <ScrollView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:scrollbars="horizontal"
            android:fillViewport="true"
            android:layout_weight="1"
            android:layout_marginLeft="8dp">
        <LinearLayout
            android:id="@+id/linearLayoutColors"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioGroup
                android:id="@+id/colorsGroup"
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </RadioGroup>
         </LinearLayout>
        </ScrollView>
    </LinearLayout>

4 个答案:

答案 0 :(得分:1)

由于您正在为scrollView修复权重,因此它认为数据不应超过高度,因此它不会滚动。只需用下面的框架布局覆盖滚动视图,然后尝试。

    LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">

   <FrameLayout android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="horizontal"
        android:fillViewport="true"
        android:layout_weight="1"
        android:layout_marginRight="8dp">
    <LinearLayout
        android:id="@+id/linearLayoutSizes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="@dimen/product_detail_items_margin_left"
        >
    </LinearLayout>

    </ScrollView>
   <FrameLayout>

     <FrameLayout android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="horizontal"
        android:fillViewport="true"
        android:layout_weight="1"
        android:layout_marginLeft="8dp">
    <LinearLayout
        android:id="@+id/linearLayoutColors"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioGroup
            android:id="@+id/colorsGroup"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </RadioGroup>
     </LinearLayout>

    </ScrollView>
  </FrameLayout>
</LinearLayout>

看看是否有效。

答案 1 :(得分:1)

试验您的代码并找到问题。

从您的代码中,它看起来像你想要的是水平滚动。但是您使用的是普通的ScrollView,默认情况下是Vertical Scroll。考虑将ScrollView更改为Horizo​​ntalScrollView。

即。从

<ScrollView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:scrollbars="horizontal"
    android:fillViewport="true"
    android:layout_weight="1"
    android:layout_marginRight="8dp">

<HorizontalScrollView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:scrollbars="horizontal"
    android:fillViewport="true"
    android:layout_weight="1"
    android:layout_marginRight="8dp">

更改滚动视图。干杯!

答案 2 :(得分:0)

查看以下代码是否适合您:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:orientation="horizontal"
    android:weightSum="2">

    <ScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginRight="8dp"
        android:layout_weight="1"
        android:fillViewport="true"
        android:scrollbars="horizontal">

        <LinearLayout
            android:id="@+id/linearLayoutSizes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"></LinearLayout>
    </ScrollView>

    <ScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginLeft="8dp"
        android:layout_weight="1"
        android:fillViewport="true"
        android:scrollbars="horizontal">

        <LinearLayout
            android:id="@+id/linearLayoutColors"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioGroup
                android:id="@+id/colorsGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            </RadioGroup>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

答案 3 :(得分:0)

你的XML看起来不错,所以为什么不尝试在布局中添加几个按钮或图像并尝试滚动它们?

也不要忘记将这行代码添加到XML文件的最顶层:

std::shared_ptr

让我知道你是怎么过的。