片段替换片段视图后不可滚动

时间:2016-11-03 05:10:13

标签: android android-fragments

在第一个fragmentA中有一个RecyclerView。如果单击RecyclerView项,则fragmentA替换为fragmentB。这是第一次打开fragmentA它正常工作。因此,当我单击RecyclerView项时,fragmentA替换为fragmentB,但fragmentB不会滚动。然后当我(通过BackStack)返回fragmentA时,我发现它也不可滚动,尽管它在用fragmentB替换之前是可滚动的。 fragmentB还有RecyclerView处于水平阶段。我无法理解这是什么问题。任何想法,建议,帮助对我来说都很重要。感谢

MainActivity我在那里用侦听器替换片段

@Override
public void onObjectItemClicked(Fragment fragment) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).replace(R.id.flContent, fragment).addToBackStack(null).commit();
    fragmentManager.executePendingTransactions();
}

MainActivity布局

<RelativeLayout
     android:layout_marginTop="?android:attr/actionBarSize"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">

     <FrameLayout
          android:id="@+id/flContent"
          android:layout_width="match_parent"
          android:layout_height="match_parent"/>
</RelativeLayout>

FragmentA布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:visibility="gone"
        android:id="@+id/mapFragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    </LinearLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/objects_recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>   
</RelativeLayout>

FragmentB布局

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <RelativeLayout
                android:id="@+id/object_img_rl"
                android:layout_width="match_parent"
                android:layout_height="220dp"
               >
                <com.android.volley.toolbox.NetworkImageView
                    android:id="@+id/object_img"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="true"
                    android:scaleType="centerCrop" />
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/dark_gradient"
                    />
                <RelativeLayout
                    android:visibility="gone"
                    android:id="@+id/aksia_img"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="true">

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        app:srcCompat="@drawable/image_aksia" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="20dp"
                        android:rotation="270"
                        android:text="@string/aksia"
                        android:textColor="@color/colorWhite" />
                </RelativeLayout>

                <ImageView
                    android:visibility="gone"
                    android:id="@+id/imgHalal"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="20dp"
                    android:layout_marginRight="20dp"
                    app:srcCompat="@drawable/halal" />

                <TextView
                    android:id="@+id/title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:text="Ағайын"
                    android:textColor="@color/colorWhite"
                    android:textSize="19sp" />

                <LinearLayout
                    android:id="@+id/time_ll"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/title"
                    android:layout_centerInParent="true"
                    android:layout_marginTop="8dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="10dp"
                        android:layout_height="10dp"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_green_circle" />

                    <TextView
                        android:id="@+id/work_time"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginLeft="5dp"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="мкр Айнабулак 4, дом 1"
                        android:textColor="@color/colorWhite"
                        android:textSize="12sp" />
                </LinearLayout>

                <TextView
                    android:id="@+id/price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/time_ll"
                    android:layout_centerInParent="true"
                    android:layout_gravity="end"
                    android:layout_marginTop="5dp"
                    android:maxLines="1"
                    android:text="мкр Айнабулак 4, дом 1"
                    android:textColor="@color/colorWhite"
                    android:textSize="12sp" />

                <TextView
                    android:layout_marginTop="30dp"
                    android:id="@+id/object_type"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/colorWhite"
                    android:textSize="15sp"
                    android:layout_alignParentTop="true"
                   android:layout_centerInParent="true" />


            </RelativeLayout>

            <RelativeLayout
                android:visibility="gone"
                android:id="@+id/conOval"
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="180dp"
                android:background="@drawable/oval_fragment_detail">

                <TextView
                    android:id="@+id/rating"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:text="5/5"
                    android:textColor="@color/colorAccent"
                    android:textSize="25sp" />
            </RelativeLayout>

            <LinearLayout
                android:id="@+id/blok_one"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/object_img_rl"
                android:layout_marginEnd="15dp"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginStart="15dp"
                android:layout_marginTop="35dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/description"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/fragment_detail_text_color"
                    android:textSize="15sp" />

                <android.support.v7.widget.RecyclerView
                    android:visibility="gone"
                    android:layout_gravity="center_horizontal"
                    android:id="@+id/kitchen_recycler_view"
                    android:layout_width="wrap_content"
                    android:layout_height="30dp"
                    android:layout_marginTop="20dp"
                    android:background="#fff" />

                <android.support.v7.widget.RecyclerView
                    android:visibility="gone"
                    android:layout_gravity="center_horizontal"
                    android:id="@+id/service_recycler_view"
                    android:layout_width="wrap_content"
                    android:layout_height="70dp"
                    android:layout_marginTop="20dp"
                    android:background="#fff" />

                <LinearLayout
                    android:visibility="gone"
                    android:id="@+id/con_aksia"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"

                        android:layout_marginTop="20dp"
                        android:background="@drawable/lynear_layout_border"
                        android:orientation="vertical"
                        android:padding="10dp">

                        <TextView
                            android:id="@+id/aksia"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/aksia"
                            android:textColor="@color/fragment_detail_text_color"
                            android:textSize="13sp" />

                        <TextView
                            android:id="@+id/aksia_content"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="10dp"
                            android:text="Акция контент"
                            android:textColor="@color/fragment_detail_text_color"
                            android:textSize="12sp" />

                    </LinearLayout>

                    <Button
                        android:id="@+id/use_aksia"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:layout_marginTop="15dp"
                        android:background="@color/colorAccent"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp"
                        android:text="@string/use_aksia"
                        android:textColor="@color/colorWhite"
                        android:textSize="14sp" />

                </LinearLayout>

                <TextView
                    android:id="@+id/phone1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:textColor="#4A90E2"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/phone2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:textColor="#4A90E2"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/email"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:textColor="#4A90E2"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:textColor="@color/fragment_detail_text_color"
                    android:textSize="14sp" />

                <TextView
                    android:id="@+id/work_day"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:textColor="@color/fragment_detail_text_color"
                    android:textSize="14sp" />


            </LinearLayout>

            <LinearLayout
                android:id="@+id/blok_two"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_below="@+id/blok_one"
                android:layout_marginTop="25dp"
                android:orientation="horizontal">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:background="@color/colorWhite">

                    <Button
                        android:id="@+id/btnMenu"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/button_border"
                        android:text="@string/menu"
                        android:textAllCaps="false"
                        android:textColor="#000000"
                        android:textSize="18sp" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:background="@color/colorWhite">

                    <Button
                        android:id="@+id/btnBron"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/button_border"
                        android:text="@string/bron"
                        android:textAllCaps="false"
                        android:textColor="#000000"
                        android:textSize="18sp" />
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/blok_three"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/blok_two"
                android:background="#F5F4F4"
                android:gravity="center"
                android:orientation="horizontal"
                android:padding="10dp">

                <ImageButton
                    android:id="@+id/imgInsta"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="#F5F4F4"
                     />

                <ImageButton
                    android:id="@+id/imgWapp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="#F5F4F4"
                     />

                <ImageButton
                    android:id="@+id/imgFb"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="#F5F4F4"
                     />

                <ImageButton
                    android:id="@+id/imgVk"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="#F5F4F4"
                     />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/blok_four"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/blok_three"
                android:layout_margin="25dp"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/gallery"
                    android:textColor="@color/fragment_detail_text_color"
                    android:textSize="14sp" />

                <android.support.v7.widget.RecyclerView
                    android:clickable="true"
                    android:focusable="true"
                    android:background="?android:attr/selectableItemBackground"
                    android:layout_marginTop="10dp"
                    android:id="@+id/gallery_recycler_view"
                    android:layout_width="match_parent"
                    android:layout_height="160dp" />
            </LinearLayout>


            <LinearLayout
                android:id="@+id/map"
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:orientation="vertical"
                android:layout_below="@+id/blok_four"
                android:layout_marginBottom="25dp">
            </LinearLayout>


            <LinearLayout
                android:background="#FFFFFF"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/comment_block"
                android:orientation="vertical"
                android:padding="25dp"
                android:layout_below="@+id/map"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/comments"
                    android:textColor="@color/fragment_detail_text_color"
                    android:textSize="14sp" />

                <android.support.v7.widget.RecyclerView
                    android:layout_marginTop="10dp"
                    android:id="@+id/comment_recycler_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

                <Button
                    android:id="@+id/btnShowAllComments"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/show_all_comments"
                    android:textAllCaps="false"
                    android:layout_gravity="center_horizontal"
                    android:textColor="#4A90E2"
                    android:paddingLeft="40dp"
                    android:paddingRight="40dp"
                    android:theme="@style/buttonTransparentStyle"
                    style="?android:attr/borderlessButtonStyle"
                    />

                <Button
                    android:id="@+id/btnAddComment"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/button_selector_custom"
                    android:theme="@style/buttonTransparentStyle"
                    android:text="@string/add_comments"
                    android:textAllCaps="false"
                    android:textSize="16sp"
                    android:textColor="#4A90E2"
                    android:layout_gravity="center_horizontal"
                    android:paddingLeft="40dp"
                    android:paddingRight="40dp"
                    android:layout_marginTop="10dp"
                    />
            </LinearLayout>
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

在第二个片段中,您在滚动视图中使用了回收器视图,这会导致滚动问题。用nestedscrollview替换scrollview,这可以在support.v4.widget库中找到。并在recylerview recyclerView.setNestedScrollingEnabled(false);上调用此方法。然后,recyler视图将在嵌套的scrollview

中正常工作
相关问题