我已经创建了一个 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;
}
当点击点时它不会隐藏布局。
谢谢。
最佳答案
是的,我遇到过同样的问题并使用 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/