ScrollView和RecyclerView滑动冲突问题
方法1:我们可以把scrollview换成androidx.core.widget.NestedScrollView
代码语言:html复制<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@ id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srlEnableFooterFollowWhenLoadFinished="true"
app:srlEnableScrollContentWhenLoaded="true">
<!-- 传统scrollview和RecyclerView滚动冲突 -->
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@ id/record_item_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:paddingHorizontal="5dp"
android:visibility="visible" />
</androidx.core.widget.NestedScrollView>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srlClassicsSpinnerStyle="Translate" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
方法2:
代码语言:java复制kesanRv.setLayoutManager(new LinearLayoutManager(getActivity()) {
@Override
public boolean canScrollVertically() {
return false;
}
});
如果无法解决,在布局文件中的RecycleView的外部套一个RelativeLayout
GridView在NestedScrollView失去高度显示不全
在使用Android的ScrollView里面嵌套GridView时,设置android:layout_height="wrap_content"属性,运行界面的效果不会出现全部数据,即GridView会显示不全。
建议:新建一个类继承GridView
代码语言:java复制public class MyGridView extends GridView {
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//重写此方法
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
xml文件:
代码语言:html复制<!-- 原生Gridview自带滚动条,继承此类重写方法去掉滚动 -->
<com.example.view.MyGridView
android:id="@ id/menu_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="@dimen/dp_10"
android:verticalSpacing="@dimen/dp_10"
android:numColumns="3"/>
之后就是适配器的事