当前位置: 代码迷 >> Android >> ListView组件中怎么使item布局文件中的组件隐藏
  详细解决方案

ListView组件中怎么使item布局文件中的组件隐藏

热度:42   发布时间:2016-05-01 21:12:45.0
ListView组件中如何使item布局文件中的组件隐藏
比如ListView组件的item的布局文件有2个textview
items.xml

<TextView
  android:id="@+id/ls_id"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_marginLeft="12dip"
  android:textSize="12dip"
  android:singleLine="true" />
  
  <TextView
  android:id="@+id/ls_time"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:gravity="right"
  android:layout_weight="1"
  android:textSize="10dip"
  android:singleLine="true" />


我要使ls_id的组件隐藏,并且单击listview触发事件的时候

ls=(ListView) findViewById(R.id.ls);

 ls.setOnItemClickListener(new OnItemClickListener(){ 
  @Override 
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
  long arg3) { 
 
  Toast.makeText(getApplicationContext(),  
  "这里面需要显示那个被点击的item所对应的隐藏的textview的值", 
  Toast.LENGTH_SHORT).show(); 
  }
  });

请问谁做过,,想了好久,,无法实现。。。。

------解决方案--------------------
ls_id的组件默认隐藏,直接在布局文件里面设置android:visibility="gone"

点击后显示组件:
在点击事件中有一个参数View arg1

通过arg1.getChildCount获得这个view中的元素数量,
例如:
int childCount = arg1.getChildCount();
for(int i=0; i<childCount; i++)
{
view v = arg1.getChildAt(i);
if(view instanceof TextView)
{
v.setVisibility(0);
break;
}
}

然后通过循环方式判断arg1.getChildAt(i);是否是TextView类型,是的话就显示,然后退出。
  相关解决方案