Viewpager 与 Nestedscrollview 和 Recyclerview 加载混蛋 android
Viewpager with Nestedscrollview and Recyclerview loading with jerk android
我已将 ViewPager
与 NestedScrollView
和 RecyclerView
一起使用。一切正常,期望在加载屏幕时首先加载回收器视图,然后用混蛋(不流畅)查看寻呼机,它看起来不太好。
现在我正在设计方面实现,没有为视图寻呼机设置任何适配器。
我没有为 view pager 或 recyclerview 填充数据。
Xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<hammerapps.views.CustomNestedScrollView
android:id="@+id/scroll_main"
android:layout_width="match_parent"
android:layout_gravity="fill_vertical"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager_banner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="24dp"
android:orientation="horizontal"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_cat_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="4dp"
android:text="EXPLORE"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_explore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="vertical"
android:visibility="visible">
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_cat1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="16dp"
android:text="EXCLUSIVE"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/border_yellow"
android:orientation="vertical"
android:layout_marginTop="16dp"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_exclusive"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="30dp"
android:layout_marginBottom="16dp"
android:orientation="vertical">
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_get_social"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="GET SOCIAL"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_twicestyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="8dp"
android:text="\@twicelifestyle \#twicelifestyle"
android:textColor="@color/orange"
android:textSize="12dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_get_social"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
</LinearLayout>
<LinearLayout
android:id="@+id/lin_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="horizontal"
android:weightSum="10">
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_view_gallery"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:background="@color/blue_light_bg_color"
android:gravity="center"
android:padding="16dp"
android:text="VIEW GALLERY"
android:textColor="@color/white"
android:textSize="12dp"
/>
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_upload_pic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:background="@color/red"
android:gravity="center"
android:padding="16dp"
android:text="UPLOAD YOUR PICTURE"
android:textColor="@color/white"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
</hammerapps.views.CustomNestedScrollView>
</FrameLayout>
问题:
最后我自己得到了答案!!
我已经实现了自定义 NestedScrollView
并重写了这两个方法,它的工作方式非常棒!
@Override
public void requestChildFocus(View child, View focused) {
Log.d(getClass().getSimpleName(), "Request focus");
}
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
Log.d(getClass().getSimpleName(), "Request focus descendants");
//return super.onRequestFocusInDescendants(direction, previouslyFocusedRect);
return false;
}
我已将 ViewPager
与 NestedScrollView
和 RecyclerView
一起使用。一切正常,期望在加载屏幕时首先加载回收器视图,然后用混蛋(不流畅)查看寻呼机,它看起来不太好。
现在我正在设计方面实现,没有为视图寻呼机设置任何适配器。 我没有为 view pager 或 recyclerview 填充数据。
Xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<hammerapps.views.CustomNestedScrollView
android:id="@+id/scroll_main"
android:layout_width="match_parent"
android:layout_gravity="fill_vertical"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager_banner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="24dp"
android:orientation="horizontal"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_cat_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="4dp"
android:text="EXPLORE"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_explore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="vertical"
android:visibility="visible">
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_cat1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="16dp"
android:text="EXCLUSIVE"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/border_yellow"
android:orientation="vertical"
android:layout_marginTop="16dp"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_exclusive"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="30dp"
android:layout_marginBottom="16dp"
android:orientation="vertical">
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_get_social"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="GET SOCIAL"
android:textColor="@color/blue_color"
android:textSize="14dp" />
<hammerapps.views.TextViewKarlaBold
android:id="@+id/txt_twicestyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="8dp"
android:text="\@twicelifestyle \#twicelifestyle"
android:textColor="@color/orange"
android:textSize="12dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_home_get_social"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
</LinearLayout>
<LinearLayout
android:id="@+id/lin_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="horizontal"
android:weightSum="10">
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_view_gallery"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:background="@color/blue_light_bg_color"
android:gravity="center"
android:padding="16dp"
android:text="VIEW GALLERY"
android:textColor="@color/white"
android:textSize="12dp"
/>
<hammerapps.views.TextViewKarlaRegular
android:id="@+id/txt_upload_pic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:background="@color/red"
android:gravity="center"
android:padding="16dp"
android:text="UPLOAD YOUR PICTURE"
android:textColor="@color/white"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
</hammerapps.views.CustomNestedScrollView>
</FrameLayout>
问题:
最后我自己得到了答案!!
我已经实现了自定义 NestedScrollView
并重写了这两个方法,它的工作方式非常棒!
@Override
public void requestChildFocus(View child, View focused) {
Log.d(getClass().getSimpleName(), "Request focus");
}
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
Log.d(getClass().getSimpleName(), "Request focus descendants");
//return super.onRequestFocusInDescendants(direction, previouslyFocusedRect);
return false;
}