ScorllView中嵌套listView與Viewpager的焦點問題處理

 

解決進入該頁面直接顯示中的listview而不是從頁面最頂端開始顯示
在setAdapter後調用listview的smoothScrollTo(0,20);android

解決listview只能顯示一條 須要重寫listview
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}ide

public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}ui

public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}this

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public MyListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}get

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

viewpager顯示不全問題
只能給viewpager設置固定的高度
android:layout_height="500dp"event

Viewpager的左右滑動焦點問題及滑動到第二個頁面上下沒法滑動問題class

重寫Viewpager
public class SViewPager extends ViewPager {List

private boolean canScroll;方法

public SViewPager(Context context) {
super(context);
canScroll = false;
}

public SViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
canScroll = false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (canScroll) {
try {
return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}
}
return false;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
if (canScroll) {
return super.onTouchEvent(event);
}
return false;
}

public void toggleLock() {
canScroll = !canScroll;
}

public void setCanScroll(boolean canScroll) {
this.canScroll = canScroll;
}

public boolean isCanScroll() {
return canScroll;
}

}在設置adapter以後調用setCanScroll(true);方法

相關文章
相關標籤/搜索