ListView 隐藏 某个Item

来源:互联网 发布:淘宝黄妹子美货假货 编辑:程序博客网 时间:2024/05/21 20:45

android隐藏listview中的某一项,可试的无效方法:
1.view.setVisibility(View.GONE); //invisible 同样会留一个空白项占着位置。
2.设置高度为0 不起作用,设置为1 会留有一条线 当连续多个项隐藏时会出现一大片空白;

你如果没有更好的方法,那就设置成一条线吧;

设置 AbsListView.LayoutParams param = new AbsListView.LayoutParams( 0,1);

@Override    public View getView(int position, View convertView, ViewGroup arg2) {        if (convertView == null) {            convertView = inflater.inflate(R.layout.test_layout, null);        }        /**         * 状态为1、2时需要显示Item,其他情况不显示Item         */        int itemState = 0;        switch(itemState){            case 1:                convertView.setVisibility(View.VISIBLE);                break;            case 2:                convertView.setVisibility(View.VISIBLE);                break;                default://下面这段代码就是让GridView中的指定的item不显示并且不占用界面空间的方法                    convertView.setVisibility(View.GONE);                 AbsListView.LayoutParams param = new AbsListView.LayoutParams(0,0); //设置item的weidth和height都为0                                        //将设置好的布局属性应用到ListView/GridView等的Item上;                    convertView.setLayoutParams(param);                    break;        }        return convertView;    }
//private void setConvertViewGone(View cView){//cView.setVisibility(View.GONE);// AbsListView.LayoutParams param =// new AbsListView.LayoutParams( 0,1); //设置item的weidth和height都为0  //           //将设置好的布局属性应用到GridView的Item上  // cView.setLayoutParams(param); //}//private void setConvertViewVisible(View cView){//cView.setVisibility(View.GONE);//AbsListView.LayoutParams param =new AbsListView.LayoutParams(//AbsListView.LayoutParams.MATCH_PARENT,AbsListView.LayoutParams.WRAP_CONTENT); //设置item的weidth和height都为0  ////将设置好的布局属性应用到GridView的Item上  //cView.setLayoutParams(param); //}



0 1
原创粉丝点击