如題蚪拦,就把項目中常見的這幾個沖突總結(jié)下吧杖剪,記性不太好,還是寫下來好了外盯。
ScrollView嵌套RecyclerView
滑動不流暢沖突:在RecyclerView屬性中加入
android:nestedScrollingEnabled="false"
使recyclerview的滑動跟隨scrollveiw
scrollview中組件不能充滿:
Android:fillViewport="true"
允許Scrollview中的組件填充它
RecyclerView顯示在布局頂部:
mRecyclerTest.setFocusable(false);//失去焦點
ScrollView嵌套GridView、ListView
只顯示一行:自定義一個gridview重新繪制item高度
public class MyGridView extends GridView {
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
GridView頂部顯示問題:
在GridView的父View中加入屬性
android:focusable="true"
android:focusableInTouchMode="true"
ScrollView嵌套ViewPager
viewpager不顯示:重新定義一個ViewPager
public class ScrollViewPager extends ViewPager{
public ScrollViewPager(Context context) {
super(context);
}
public ScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if (h > height)height = h;
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
CollapsingToolbarLayout和GridView一起使用翼雀,滑動gridview無折疊效果
ViewCompat.setNestedScrollingEnabled(mGridView,true);