1,ScrollView或者RecyclerView1 嵌套RecyclerView2 進入頁面自動跳轉到recyclerView2上面頁面會自動滾動
貌似是RecyclerView 自動獲得了焦點
兩種解決辦法
一,recyclerview去除焦點
recyclerview.setFocusableInTouchMode(false);
recyclerview.requestFocus();
二,在代碼里面 讓處於ScrollView或者RecyclerView1 頂端的某個控件獲得焦點即可
比如頂部的一個textview
tv_goodsName.setFocusableInTouchMode(true);
tv_goodsName.requestFocus();
2,RecyclerView 高度設置wrap_content 無作用的bug,在listview中這么設置會不顯示RecyclerView
解決方案:
這是RecyclerView兼容包的bug,23.2.0后官方已經修復了。
所以直接在gradle里設置用23.2.0及以上的RecyclerView:
compile 'com.android.support:recyclerview-v7:23.2.0'
PS:如果修改后構建時報了其他奇怪的錯,可以試試把兼容包也升級一下:
compile 'com.android.support:cardview-v7:23.2.0'
compile 'com.android.support:recyclerview-v7:23.2.0'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
3,RecyclerView 條目布局寬度設置match_parent無效果的問題解決
//這里為了解決recycleview不能撐滿全屏的問題,這里layoutManager不管你布局里是否設置,都不准確,所以需要在代碼里
//重新設置MATCH_PARENT
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()) {
@Override
public RecyclerView.LayoutParams generateDefaultLayoutParams() {
return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
}
};
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xrecyclerview.setLayoutManager(layoutManager);
兩種解決辦法
一,recyclerview去除焦點
recyclerview.setFocusableInTouchMode(false);
recyclerview.requestFocus();
二,在代碼里面 讓處於ScrollView或者RecyclerView1 頂端的某個控件獲得焦點即可
比如頂部的一個textview
tv_goodsName.setFocusableInTouchMode(true);
tv_goodsName.requestFocus();
2,RecyclerView 高度設置wrap_content 無作用的bug,在listview中這么設置會不顯示RecyclerView
解決方案:
這是RecyclerView兼容包的bug,23.2.0后官方已經修復了。
所以直接在gradle里設置用23.2.0及以上的RecyclerView:
compile 'com.android.support:recyclerview-v7:23.2.0'
PS:如果修改后構建時報了其他奇怪的錯,可以試試把兼容包也升級一下:
compile 'com.android.support:cardview-v7:23.2.0'
compile 'com.android.support:recyclerview-v7:23.2.0'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
3,RecyclerView 條目布局寬度設置match_parent無效果的問題解決
//這里為了解決recycleview不能撐滿全屏的問題,這里layoutManager不管你布局里是否設置,都不准確,所以需要在代碼里
//重新設置MATCH_PARENT
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()) {
@Override
public RecyclerView.LayoutParams generateDefaultLayoutParams() {
return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
}
};
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xrecyclerview.setLayoutManager(layoutManager);