RecyclerView常見問題解決方案,RecyclerView嵌套自動滾動,RecyclerView 高度設置wrap_content 無作用等問題


 

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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM