Scrollview +GridView问题

陈译 2016-06-15 05:32:58
各位大神帮忙看一下
网上说的重写onMeasure发放已经使用了

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+BaseAdapter

for (i = 0; i < json2.length(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
json3 = json2.getJSONObject(i);
map.put("NAME", json3.get("NAME"));
map.put("DRUG_PRICE", json3.get("DRUG_PRICE"));
map.put("DRUG_SUPPLIER_NAME", json3.get("DRUG_SUPPLIER_NAME"));
map.put("DRUG_IMG_URL", json3.get("DRUG_IMG_URL"));
list.add(map);
}

TabDetailAdapter hotadapter = new TabDetailAdapter(MainActivity.this, list);
gridhotview.setAdapter(hotadapter);
util.setListViewHeightBasedOnChildren(gridhotview);


而且当我把整个页面放在不满一个页面高度时,grid view还是有滑动条,求教这是为什么
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tudouzi007 2016-06-16
  • 打赏
  • 举报
回复
在自定义的gridview里加上这个方法,禁止gridview滑动 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_MOVE) { return true; // 禁止GridView滑动 } return super.dispatchTouchEvent(ev); }
陈译 2016-06-15
  • 打赏
  • 举报
回复
引用 1 楼 qq_21376985 的回复:
[quote=引用 楼主 u013015085 的回复:] 各位大神帮忙看一下 网上说的重写onMeasure发放已经使用了

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+BaseAdapter

for (i = 0; i < json2.length(); i++) {
     Map<String, Object> map = new HashMap<String, Object>();
    json3 = json2.getJSONObject(i);
    map.put("NAME", json3.get("NAME"));
    map.put("DRUG_PRICE", json3.get("DRUG_PRICE"));
    map.put("DRUG_SUPPLIER_NAME", json3.get("DRUG_SUPPLIER_NAME"));
    map.put("DRUG_IMG_URL", json3.get("DRUG_IMG_URL"));
    list.add(map);
}

     TabDetailAdapter hotadapter = new TabDetailAdapter(MainActivity.this, list);
     gridhotview.setAdapter(hotadapter);
     util.setListViewHeightBasedOnChildren(gridhotview);
而且当我把整个页面放在不满一个页面高度时,grid view还是有滑动条,求教这是为什么
util.setListViewHeightBasedOnChildren(gridhotview); 我是没用过,我是重写onmeasure就可以了,用了这么多年,都OK[/quote] 我一开始的时候界面不能滑动,重写了onMeasure也可以了,但是现在就没用了,不明白原因- -
程序员小冰 2016-06-15
  • 打赏
  • 举报
回复
引用 楼主 u013015085 的回复:
各位大神帮忙看一下 网上说的重写onMeasure发放已经使用了

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+BaseAdapter

for (i = 0; i < json2.length(); i++) {
     Map<String, Object> map = new HashMap<String, Object>();
    json3 = json2.getJSONObject(i);
    map.put("NAME", json3.get("NAME"));
    map.put("DRUG_PRICE", json3.get("DRUG_PRICE"));
    map.put("DRUG_SUPPLIER_NAME", json3.get("DRUG_SUPPLIER_NAME"));
    map.put("DRUG_IMG_URL", json3.get("DRUG_IMG_URL"));
    list.add(map);
}

     TabDetailAdapter hotadapter = new TabDetailAdapter(MainActivity.this, list);
     gridhotview.setAdapter(hotadapter);
     util.setListViewHeightBasedOnChildren(gridhotview);
而且当我把整个页面放在不满一个页面高度时,grid view还是有滑动条,求教这是为什么
util.setListViewHeightBasedOnChildren(gridhotview); 我是没用过,我是重写onmeasure就可以了,用了这么多年,都OK

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧