安卓view各类嵌套问题记录

recyclerview嵌套的ScrollView里再嵌套一个recyclerview不能滑动

m=(RecyclerView)findViewById(R.id.main1);
m.setLayoutManager(new LinearLayoutManager(MainActivity.this){
    public boolean canScrollVertically(){
        return false;
    }
});//这里使得界面可以滑动

recyclerview嵌套的ScrollView中的控件显示不全

在<androidx.recyclerview.widget.RecyclerView的外面一层的布局LinearLayout的属性中加一句

android:descendantFocusability="blocksDescendants"

即可,注意如果要使用ScrollView要先嵌套一个LinearLayout,ScrollView中只能放一个插件

ScrollView嵌套ListView显示不全

新建类,继承ListView并重写onMeasure方法如下

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, expandSpec);
}

再使用这个新的控件即可

ScrollView中嵌套自定义View控件不显示

给ScollView的属性加上android:fillViewport="true"即可

ScrollView中嵌套ScrollView滑动冲突

给外层ScrollView和内层ScrollView设置id分别为a,b
在对应activity中声明两个ScrollView并找到它们,之后设置

a.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        v.getParent().requestDisallowInterceptTouchEvent(false);
        return false;
    }
});
b.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        v.getParent().requestDisallowInterceptTouchEvent(true);
        return false;
    }
});

版权声明:本文为weixin_43390435原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。