Android ScrollView 下嵌套 ListView 或 GridView出現問題解決辦法
ScrollView 下嵌套 ListView 或 GridView 會發列表現數據只能顯示一行。因為他們都是滾動結構,兩個滾動條放到一起就會引起沖突。
解決此問題可以通過計算 ListView 高度或重寫 ListView 的 onMeasure 方法來解決。下面介紹通過重寫 onMeasure 方法來解決問題。
重寫 onMeasure 方法如下:
public class ScrollListView extends ListView { public ScrollListView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int mExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, mExpandSpec); }}public class ScrollGridView extends GridView { public ScrollGridView(Context context, ttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}ScrollView 需要注意的地方:
1、ScrollView 只支持垂直滾動。
2、ScrollView 只能添加一個子控件 。如果有多個子控件怎么辦呢,直接在這些子控件外面再套一層 LinearLayout 就 OK 了。
以上就是關于Android 開發ScrollView 嵌套出現問題的解決辦法,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答