软件编程
位置:首页>> 软件编程>> Android编程>> Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

作者:lqh  发布时间:2023-03-31 07:17:04 

标签:Android,ScrollView

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 了。

来源:http://www.123si.org/android/265.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com