android - 在 ListView Android 中隐藏和显示 View

标签 android android-listview

我已经创建了一个 android 应用程序,我想使用自定义适配器在 ListView 中隐藏和显示 View 。

我的代码是:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View vi = convertView;
    if (convertView == null)
    {
        vi = inflater.inflate(R.layout.item_estimate, null);
        btn_dots = (ImageButton) vi.findViewById(R.id.btn_dots_itemEstimate);
        ll_2 = (LinearLayout) vi.findViewById(R.id.ll_2_itemEstimate);
    }

    btn_dots.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View arg0)
        {
            if (ll_2.getVisibility() == View.GONE)
            {
                ll_2.setVisibility(View.VISIBLE);
            }
            else
            {
                ll_2.setVisibility(View.GONE);
            }
        }
    });

    return vi;
}

enter image description here

当点击点时它不会隐藏布局。

谢谢。

最佳答案

是的,我遇到过同样的问题并使用 ExpandableListView 解决了它。我正在粘贴下面的代码

public DefaultContactListAdapter(Context context, ArrayList<Cont> List2) {
    super();
    this.context = context;
    this.contactList = contactList2;

    @Override
    public Object getChild(int parent, int child) {
        return child;

//      return glossariesList.get(Sub_List.get(parent) ).get(child);
    }

    @Override
    public long getChildId(int parent, int child) {
        // TODO Auto-generated method stub
        return child;
    }

    @Override
    public View getChildView(int parent, int child,
            boolean lastChild, View convertview, ViewGroup parentview)
    {
//      String child_title=(String) getChild(parent, child);
        if(convertview==null)
        {
            LayoutInflater inflator=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertview=inflator.inflate(R.layout.layout_default_contact_screen_child, parentview, false);

        }

        return convertview;
    }

    @Override
    public int getChildrenCount(int groupPosition)
    {
        return 1;
    }

    @Override
    public Object getGroup(int groupPosition) {
        // TODO Auto-generated method stub
        return contactList.get(groupPosition);
    }

    @Override
    public int getGroupCount() {
        // TODO Auto-generated method stub
        return contactList.size();
    }

    @Override
    public long getGroupId(int groupPosition) {
        // TODO Auto-generated method stub
        return groupPosition;
    }

    @Override
    public View getGroupView(int parent, boolean isExpanded,
            View convertView, ViewGroup parentview) {
        // TODO Auto-generated method stub
        //String group_title=(String) getGroup(parent);
        if(convertView==null)
        {
            LayoutInflater inflator=(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
            convertView=inflator.inflate(R.layout.layout_default_screen, parentview,false);

        }



        return convertView;
    }

    @Override
    public boolean hasStableIds() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return false;
    }
}

关于android - 在 ListView Android 中隐藏和显示 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540613/

相关文章:

android 声音应用程序 sdk 或 ndk?

android - 无法从 TimePicker 获取时间

android - 如果子项在可扩展 ListView android中为空,如何单击组

android - 在 Android 中生成并打印具有特定大小的 PDF

android - 安装应用程序是否会删除 SQLite 数据库或 SharedPreferences

java - 非阻塞写入Android中的套接字

java - 每行包含两个元素的 Android 列表

java - 单击到另一个 Activity 时如何将自定义数组列表的列表项的数据发送?

android 布局重叠 ListView 和 LinearLayout

android - 禁止在使用其子 MapView 时拦截 Listview 的触摸