滚动视图不滚动

时间:2017-03-30 16:02:44

标签: android

我正在使用只有一个子行为布局的滚动视图。 Linearlayout还包含listview和其他一些项目,但只有listview滚动。我该怎么办 ? 这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/beco_white"
android:orientation="vertical">

<include layout="@layout/toolbar" />

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ViewSwitcher
            android:id="@+id/view_switcher"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="125dp"
                android:background="@android:color/white"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/button_sign_in"
                    android:layout_width="150dp"
                    android:layout_height="40dp"
                    android:layout_gravity="center"
                    android:layout_marginLeft="@dimen/dp20"
                    android:background="@drawable/dark_blue_round_corner"
                    android:fontFamily="sans-serif-normal"
                    android:text="Login to beCo"
                    android:textAllCaps="false"
                    android:textColor="@android:color/white"
                    android:textSize="14sp" />

                <Button
                    android:id="@+id/button_sign_up"
                    android:layout_width="150dp"
                    android:layout_height="40dp"
                    android:layout_gravity="center"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="@dimen/dp20"
                    android:background="@drawable/customborder"
                    android:fontFamily="sans-serif-normal"
                    android:text="Create New Account"
                    android:textAllCaps="false"
                    android:textColor="@color/colorAccent"
                    android:textSize="14sp" />


            </LinearLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="125dp"
                android:background="@android:color/white">

                <com.facebook.drawee.view.SimpleDraweeView
                    android:id="@+id/image_profile"
                    android:layout_width="@dimen/dp88"
                    android:layout_height="@dimen/dp88"
                    android:layout_gravity="left"
                    android:layout_marginBottom="@dimen/dp10"
                    android:layout_marginLeft="@dimen/dp10"
                    android:layout_marginTop="@dimen/dp10"
                    fresco:actualImageScaleType="centerCrop"
                    fresco:placeholderImage="@drawable/no_profile_pic"
                    fresco:roundAsCircle="true"
                    fresco:roundingBorderColor="@color/white"
                    fresco:roundingBorderWidth="@dimen/dp2" />


                <TextView
                    android:id="@+id/user_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:layout_marginLeft="@dimen/dp10"
                    android:layout_toRightOf="@+id/image_profile"
                    android:fontFamily="sans-serif-normal"
                    android:text="John Doe"
                    android:textColor="@android:color/black"
                    android:textSize="25sp" />

                <TextView
                    android:id="@+id/email"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/user_name"
                    android:layout_marginLeft="@dimen/dp10"
                    android:layout_toEndOf="@+id/image_profile"
                    android:layout_toRightOf="@+id/image_profile"
                    android:fontFamily="sans-serif-normal"
                    android:text="johndoe@mail.com"
                    android:textColor="@android:color/black"
                    android:textSize="14sp" />

                <Button
                    android:id="@+id/button_edit"
                    android:layout_width="wrap_content"

                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignTop="@+id/image_profile"
                    android:background="@drawable/customborder"
                    android:text="Edit Profile"
                    android:textAllCaps="false"
                    android:textColor="@color/colorAccent" />

            </RelativeLayout>

        </ViewSwitcher>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dp"
            android:background="@color/grey_200" />

        <ListView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

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

有人请帮帮我吗?

5 个答案:

答案 0 :(得分:1)

切勿将ListView放入ScrollView。这是一种不好的做法,它违背了ListView的目的。谁想在屏幕上有两个可滚动区域呢?

而是根据您的需要在listView上添加页眉或页脚视图。

答案 1 :(得分:0)

如果查看文档https://developer.android.com/reference/android/widget/ScrollView.html,它指出scrollview绝不应该与listview一起使用,它们之间可能存在冲突。

答案 2 :(得分:0)

试试这个布局:

的变化:

  1. 将内部linearlayout换行设为Scrollview

  2. android:layout_height="wrap_content"

  3. 申请scrollview
  4. scrollview之前结束Listview因为两者无法一起应用

    <?xml version="1.0" encoding="utf-8"?>
    

    <include layout="@layout/toolbar" />
    
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="false">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <ViewSwitcher
                android:id="@+id/view_switcher"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="125dp"
                    android:background="@android:color/white"
                    android:orientation="horizontal">
    
                    <Button
                        android:id="@+id/button_sign_in"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/dp20"
                        android:background="@drawable/dark_blue_round_corner"
                        android:fontFamily="sans-serif-normal"
                        android:text="Login to beCo"
                        android:textAllCaps="false"
                        android:textColor="@android:color/white"
                        android:textSize="14sp" />
    
                    <Button
                        android:id="@+id/button_sign_up"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginLeft="20dp"
                        android:layout_marginRight="@dimen/dp20"
                        android:background="@drawable/customborder"
                        android:fontFamily="sans-serif-normal"
                        android:text="Create New Account"
                        android:textAllCaps="false"
                        android:textColor="@color/colorAccent"
                        android:textSize="14sp" />
    
    
                </LinearLayout>
    
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="125dp"
                    android:background="@android:color/white">
    
                    <com.facebook.drawee.view.SimpleDraweeView
                        android:id="@+id/image_profile"
                        android:layout_width="@dimen/dp88"
                        android:layout_height="@dimen/dp88"
                        android:layout_gravity="left"
                        android:layout_marginBottom="@dimen/dp10"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_marginTop="@dimen/dp10"
                        fresco:actualImageScaleType="centerCrop"
                        fresco:placeholderImage="@drawable/no_profile_pic"
                        fresco:roundAsCircle="true"
                        fresco:roundingBorderColor="@color/white"
                        fresco:roundingBorderWidth="@dimen/dp2" />
    
    
                    <TextView
                        android:id="@+id/user_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_toRightOf="@+id/image_profile"
                        android:fontFamily="sans-serif-normal"
                        android:text="John Doe"
                        android:textColor="@android:color/black"
                        android:textSize="25sp" />
    
                    <TextView
                        android:id="@+id/email"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/user_name"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_toEndOf="@+id/image_profile"
                        android:layout_toRightOf="@+id/image_profile"
                        android:fontFamily="sans-serif-normal"
                        android:text="johndoe@mail.com"
                        android:textColor="@android:color/black"
                        android:textSize="14sp" />
    
                    <Button
                        android:id="@+id/button_edit"
                        android:layout_width="wrap_content"
    
                        android:layout_height="wrap_content"
                        android:layout_alignParentEnd="true"
                        android:layout_alignParentRight="true"
                        android:layout_alignTop="@+id/image_profile"
                        android:background="@drawable/customborder"
                        android:text="Edit Profile"
                        android:textAllCaps="false"
                        android:textColor="@color/colorAccent" />
    
                </RelativeLayout>
    
            </ViewSwitcher>
        </LinearLayout>
    </ScrollView>
    
    
    <View
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:background="@color/grey_200" />
    
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    

答案 3 :(得分:0)

使用NestedScrollView代替ScrollView

  

NestedScrollView就像ScrollView一样,但它支持表演   作为新旧两种嵌套滚动parentchild   Android版本。

请参阅Documentation

更新您的XML,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/beco_white"
    android:orientation="vertical">

    <include layout="@layout/toolbar" />

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/layout_scorll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:descendantFocusability="blocksDescendants">

            <ViewSwitcher
                android:id="@+id/view_switcher"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="125dp"
                    android:background="@android:color/white"
                    android:orientation="horizontal">

                    <Button
                        android:id="@+id/button_sign_in"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/dp20"
                        android:background="@drawable/dark_blue_round_corner"
                        android:fontFamily="sans-serif-normal"
                        android:text="Login to beCo"
                        android:textAllCaps="false"
                        android:textColor="@android:color/white"
                        android:textSize="14sp" />

                    <Button
                        android:id="@+id/button_sign_up"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginLeft="20dp"
                        android:layout_marginRight="@dimen/dp20"
                        android:background="@drawable/customborder"
                        android:fontFamily="sans-serif-normal"
                        android:text="Create New Account"
                        android:textAllCaps="false"
                        android:textColor="@color/colorAccent"
                        android:textSize="14sp" />


                </LinearLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="125dp"
                    android:background="@android:color/white">

                    <com.facebook.drawee.view.SimpleDraweeView
                        android:id="@+id/image_profile"
                        android:layout_width="@dimen/dp88"
                        android:layout_height="@dimen/dp88"
                        android:layout_gravity="left"
                        android:layout_marginBottom="@dimen/dp10"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_marginTop="@dimen/dp10"
                        fresco:actualImageScaleType="centerCrop"
                        fresco:placeholderImage="@drawable/no_profile_pic"
                        fresco:roundAsCircle="true"
                        fresco:roundingBorderColor="@color/white"
                        fresco:roundingBorderWidth="@dimen/dp2" />


                    <TextView
                        android:id="@+id/user_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_toRightOf="@+id/image_profile"
                        android:fontFamily="sans-serif-normal"
                        android:text="John Doe"
                        android:textColor="@android:color/black"
                        android:textSize="25sp" />

                    <TextView
                        android:id="@+id/email"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/user_name"
                        android:layout_marginLeft="@dimen/dp10"
                        android:layout_toEndOf="@+id/image_profile"
                        android:layout_toRightOf="@+id/image_profile"
                        android:fontFamily="sans-serif-normal"
                        android:text="johndoe@mail.com"
                        android:textColor="@android:color/black"
                        android:textSize="14sp" />

                    <Button
                        android:id="@+id/button_edit"
                        android:layout_width="wrap_content"

                        android:layout_height="wrap_content"
                        android:layout_alignParentEnd="true"
                        android:layout_alignParentRight="true"
                        android:layout_alignTop="@+id/image_profile"
                        android:background="@drawable/customborder"
                        android:text="Edit Profile"
                        android:textAllCaps="false"
                        android:textColor="@color/colorAccent" />

                </RelativeLayout>

            </ViewSwitcher>

            <View
                android:layout_width="wrap_content"
                android:layout_height="1dp"
                android:background="@color/grey_200" />

            <ListView
                android:id="@+id/list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
</LinearLayout>

答案 4 :(得分:0)

我只使用listview找到了解决方案。即。删除滚动视图,并使用标题视图作为列表视图
列表视图

Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/beco_white"
    android:orientation="vertical">

    <include layout="@layout/toolbar" />

    <View
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:background="@color/grey_200" />

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="@drawable/list_divider"
        android:dividerHeight="@dimen/dp1"
        android:headerDividersEnabled="false"
        android:footerDividersEnabled="false" />

</LinearLayout>
listview headerview

xml代码

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

<ViewSwitcher
    android:id="@+id/view_switcher"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:background="@drawable/profile_background"
        android:orientation="vertical">

        <Button
            android:id="@+id/button_sign_in"
            android:layout_width="wrap_content"
            android:layout_height="36dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/dp40"
            android:background="@drawable/dark_blue_round_corner"
            android:fontFamily="sans-serif-medium"
            android:text="Sign in"
            android:textAllCaps="true"
            android:textColor="@android:color/white"
            android:textSize="14sp" />

        <LinearLayout
            android:id="@+id/button_sign_up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/dp16">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:fontFamily="sans-serif-normal"
                android:text="@string/new_to_beco"
                android:textColor="@color/beco_white"
                android:textSize="14sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="7dp"
                android:fontFamily="sans-serif-normal"
                android:text="@string/action_sign_up"
                android:textAllCaps="true"
                android:textColor="@color/beco_primary"
                android:textSize="14sp" />
        </LinearLayout>

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:background="@drawable/profile_background">

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/image_profile"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:layout_gravity="left"
            android:layout_marginLeft="15dp"
            android:layout_marginStart="15dp"
            fresco:actualImageScaleType="centerCrop"
            fresco:placeholderImage="@drawable/no_profile_pic"
            fresco:roundAsCircle="true"
            fresco:roundingBorderColor="@color/white"
            fresco:roundingBorderWidth="@dimen/dp2" />

        <TextView
            android:id="@+id/user_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/image_profile"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="15dp"
            android:layout_marginStart="15dp"
            android:layout_marginTop="25dp"
            android:layout_toEndOf="@+id/image_profile"
            android:layout_toRightOf="@+id/image_profile"
            android:fontFamily="sans-serif-medium"
            android:text="John Doe"
            android:textColor="@android:color/black"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/email"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/user_name"
            android:layout_alignStart="@+id/user_name"
            android:layout_below="@+id/user_name"
            android:layout_marginTop="8dp"
            android:fontFamily="sans-serif-normal"
            android:text="johndoe@mail.com"
            android:textColor="@android:color/black"
            android:textSize="13sp" />

        <ImageView
            android:id="@+id/action_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/email"
            android:layout_alignTop="@+id/user_name"
            android:layout_marginLeft="11dp"
            android:layout_marginStart="11dp"
            android:layout_toEndOf="@+id/user_name"
            android:layout_toRightOf="@+id/user_name"
            android:src="@drawable/ic_edit" />
    </RelativeLayout>

</ViewSwitcher>