我正在使用只有一个子行为布局的滚动视图。 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>
有人请帮帮我吗?
答案 0 :(得分:1)
切勿将ListView
放入ScrollView
。这是一种不好的做法,它违背了ListView
的目的。谁想在屏幕上有两个可滚动区域呢?
而是根据您的需要在listView上添加页眉或页脚视图。
答案 1 :(得分:0)
如果查看文档https://developer.android.com/reference/android/widget/ScrollView.html,它指出scrollview绝不应该与listview一起使用,它们之间可能存在冲突。
答案 2 :(得分:0)
试试这个布局:
的变化:
将内部linearlayout换行设为Scrollview
为android:layout_height="wrap_content"
scrollview
在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
一样,但它支持表演 作为新旧两种嵌套滚动parent
和child
Android版本。
更新您的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 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>