滚动列表视图会导致按钮不可见

时间:2011-04-06 10:23:55

标签: android listview

我有一个列表视图,其中包含列表每行中的一个按钮。 根据字段,我想让这个按钮不可见。

我的适配器内部的getView方法如下所示。

    public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub

                Activity activity = (Activity) getContext();
                View view = convertView;

                if (convertView == null) {
                    LayoutInflater inflater = activity.getLayoutInflater();
                    view = inflater.inflate(R.layout.listrow, null);
                }

                final Details details = getItem(position);
                Button btn = (Button) view.findViewById(R.id.btn);

                if(details.check()) {
                    btn.setVisibility(View.INVISIBLE);
                }
    }

当我加载此页面时,数据正确显示。但只需滚动浏览此列表,此按钮就会变得不可见。这是什么原因?当我删除if部分时,即使我滚动,我也会获得所有行的按钮。在invisible内提供getView()是否有任何问题。请回复。提前谢谢。

2 个答案:

答案 0 :(得分:2)

添加以下内容:

if(details.check()) {
   btn.setVisibility(View.INVISIBLE);
}
else {
   btn.setVisibility(View.VISIBLE);
}

和......最好使用

LayoutInflater.from(getContext()) 

而不是activity.getLayoutInflater()

答案 1 :(得分:0)

在xml中设置listview false的可点击属性,或者像:

getListView().setClickable(false);