Android-DesignEx icon indicating copy to clipboard operation
Android-DesignEx copied to clipboard

下方放置ViewPager+Fragment作为滚动布局

Open lalozhang opened this issue 8 years ago • 3 comments

你好,如果下方的滚动布局换成ViewPager+Fragment这种,Fragment里放RecyclerView,RecyclerView的Adapter的ItemView里有图片的话,上滑时,会出现重影,闪一下,如果去掉自定义的bahavior,就没问题,请作者帮忙看下 谢谢~

lalozhang avatar Dec 01 '16 03:12 lalozhang

能否把布局文件贴一下

waldenana avatar Dec 01 '16 03:12 waldenana

这个是Activity里的布局文件

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" app:statusBarBackground="@android:color/transparent" android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBar"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF"
    app:layout_behavior="android.support.design.widget.ParallaxScaleBehavior"
    >
    <!--app:layout_behavior="android.support.design.widget.ParallaxScaleBehavior"-->
    <com.huapu.huafen.views.CollapsingCenterLayout
        app:title="个人主页"
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:fitsSystemWindows="true"
        android:layout_height="wrap_content"
        app:collapsedTitleGravity="center"
        app:contentScrim="@color/base_pink_light"
        app:collapsedTitleTextAppearance="@style/collapsedTitleTextStyle"
        app:expandedTitleTextAppearance="@style/expandedTitleTextStyle"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        >

        <ImageView
            android:src="@drawable/personal_bg"
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="350dp"
            android:scaleType="centerCrop"
            android:clickable="true"
            app:layout_collapseMode="parallax"/>
        <include
            layout="@layout/home_page_header"
            />
        <android.support.v7.widget.Toolbar
            app:elevation="0dp"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            app:layout_collapseMode="pin"
            app:navigationIcon="@drawable/btn_title_back_select"
            >
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <ImageView
                    android:id="@+id/btnTitleRight"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="10dp"
                    android:src="@drawable/btn_title_right_personal" />
                <ImageView
                    android:layout_toLeftOf="@id/btnTitleRight"
                    android:id="@+id/btnReport"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                    android:src="@drawable/btn_title_report_personal"
                    android:visibility="visible" />

            </RelativeLayout>
        </android.support.v7.widget.Toolbar>

    </com.huapu.huafen.views.CollapsingCenterLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/base_divider_height"
        android:background="@color/base_tab_bar_divider" />
    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"
        app:tabIndicatorColor="@color/base_pink"
        app:tabIndicatorHeight="3dp"
        app:tabSelectedTextColor="@color/base_pink"
        app:tabTextColor="#999999" />
</android.support.design.widget.AppBarLayout>


<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>

这个是ViewPager里的Fragment的布局文件

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

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

这个是Fragment里Adapter的item_layout

<android.support.v7.widget.CardView 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="wrap_content" app:cardBackgroundColor="@color/white" app:cardElevation="20dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/ivPhoto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:background="@drawable/default_pic"
        android:scaleType="centerCrop" />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/base_tab_bar_divider"/>

    <LinearLayout
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:orientation="vertical"
        android:paddingLeft="5dp"
        android:paddingRight="5dp">

        <com.huapu.huafen.views.DashLineView
            android:id="@+id/dlvGoodsName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:singleLine="true"
            android:textColor="@color/text_color"
            app:dashLineStyle="normalBlack" />

        <LinearLayout
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.huapu.huafen.views.CommonPriceView
                android:id="@+id/cpvPrice"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                />

            <TextView
                android:id="@+id/tvLikeCount"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/btn_item_like_select"
                android:drawablePadding="3dp"
                android:singleLine="true"
                android:text="1111"
                style="@style/normalTextPink"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

</android.support.v7.widget.CardView>

这个是Adapter的部分代码

@Override public HomePageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { HomePageViewHolder viewHolder = new HomePageViewHolder(LayoutInflater.from(fragment.getActivity()). inflate(R.layout.item_home_page, parent, false)); LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) viewHolder.ivPhoto.getLayoutParams(); lp.height = CommonUtils.getScreenWidth()/2; viewHolder.ivPhoto.setLayoutParams(lp); return viewHolder; }

@Override
public void onBindViewHolder(HomePageViewHolder holder, int position) {
    final GoodsInfo item = data.get(position);
    holder.itemView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

        }
    });
    if(item!=null){

        if(!ArrayUtil.isEmpty(item.getGoodsImgs())){
            String url = item.getGoodsImgs().get(0);
            String tag = (String) holder.ivPhoto.getTag();
            if(TextUtils.isEmpty(tag)||!tag.equals(url)){
                holder.ivPhoto.setTag(url);
                ImageLoaderRoundManager.getImageLoader().displayImage(url,
                        holder.ivPhoto, ImageLoaderRoundManager.getImageOptions());
            }

        }else{
            holder.ivPhoto.setImageResource(R.drawable.default_pic);
        }

        holder.dlvGoodsName.setData(item.getGoodsBrand(),item.getGoodsName());
        holder.cpvPrice.setData(item);
        holder.tvLikeCount.setText(item.getWantCount()+"");
    }

}

lalozhang avatar Dec 01 '16 06:12 lalozhang

activity要透明状态栏,然后那个imageview设置android:fitsSystemWindows="true" 这样修改后应该就好了

waldenana avatar Dec 01 '16 07:12 waldenana