歡迎大家和我分享
歡迎轉(zhuǎn)載凛膏,但請(qǐng)保留文章原始出處:
哈哩波特大:http://www.reibang.com/u/b7d80b891802
res:layout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_15">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
Java:activity
//解決數(shù)據(jù)加載不完的問(wèn)題
recycler_view.setNestedScrollingEnabled(false);
//當(dāng)知道Adapter內(nèi)Item的改變不會(huì)影響RecyclerView寬高的時(shí)候引矩,可以設(shè)置為true讓RecyclerView避免重新計(jì)算大小
recycler_view.setHasFixedSize(true);
//解決數(shù)據(jù)加載完成后, 沒(méi)有停留在頂部的問(wèn)題
recycler_view.setFocusable(false);
方案一
嵌套一層RelativeLayout
添加屬性 android:descendantFocusability="blocksDescendants"
首先該屬性android:descendantFocusability的含義是:當(dāng)一個(gè)view獲取焦點(diǎn)時(shí)漂坏,定義ViewGroup和其子控件兩者之間的關(guān)系绒窑。
它一共有3個(gè)屬性值畦浓,它們分別是:
beforeDescendants:viewGroup會(huì)優(yōu)先子類(lèi)控件而獲取焦點(diǎn)
afterDescendants:viewGroup只有當(dāng)子類(lèi)控件不需要獲取焦點(diǎn)的時(shí)候才去獲取焦點(diǎn)
blocksDescendants:viewGroup會(huì)覆蓋子類(lèi)控件而直接獲取焦點(diǎn)
方案二
首先在xml布局中將你的ScrollView替換成android.support.v4.widget.NestedScrollView
瓮恭,并在java代碼中設(shè)置recyclerView.setNestedScrollingEnabled(false);