Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android setvisibility(view.visible)在setvisibility(view.gone)之后不工作_Android_Listview_View_Visibility_Onitemclicklistener - Fatal编程技术网

Android setvisibility(view.visible)在setvisibility(view.gone)之后不工作

Android setvisibility(view.visible)在setvisibility(view.gone)之后不工作,android,listview,view,visibility,onitemclicklistener,Android,Listview,View,Visibility,Onitemclicklistener,我看到一些关于这个的帖子,我理解了这个问题。但是我们怎么才能绕过它呢?我有列表视图,其中的项目可以展开,但一旦视图消失,它就无法再次显示,除非它有可用空间。如何创造那个空间 private void mySetOnItemListener() { l.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0,

我看到一些关于这个的帖子,我理解了这个问题。但是我们怎么才能绕过它呢?我有
列表视图
,其中的项目可以展开,但一旦视图消失,它就无法再次显示,除非它有可用空间。如何创造那个空间

private void mySetOnItemListener() {
    l.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View view,
            int position, long arg3) {
        Log.d("onItemClick","called");
        LinearLayout ll = (LinearLayout)view.findViewById(R.id.llOpenedField);
        ll.setVisibility(View.VISIBLE);
    }
    });
}
private void mySetOnItemListener(){
l、 setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView arg0,视图,
整数位置,长arg3){
Log.d(“被称为”麦克利克“);
LinearLayout ll=(LinearLayout)view.findViewById(R.id.llOpenedField);
ll.setVisibility(View.VISIBLE);
}
});
}
我的视图布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:descendantFocusability="blocksDescendants">

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:weightSum="5" >

        <TextView
            android:id="@+id/tv_name"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="4"
            android:padding="7dp"
            android:text="item"
            android:textColor="@android:color/background_dark"
            android:textSize="25dp" />
    </LinearLayout>

      <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/llOpenedField"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"

         >

        <ImageButton
            android:id="@+id/ibInformation"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:src="@drawable/info" />

    </LinearLayout>

</LinearLayout>

LinearLayout
android:id=“@+id/llOpenedField”
是我试图在开始时使
消失的内容


我将
gone
属性放入
getView()
BaseAdapter

试试这个并根据需要修改,这不是我正在单击的列表项

制作线性布局
android:visibility=“gone”
;首先,做这个

@Override
    public void onClick(View v)
    {
        LinearLayout ll = (LinearLayout)findViewById(R.id.vis);

        if(v == ex)
        {
            if(ll.getVisibility() == View.VISIBLE)
                ll.setVisibility(View.GONE);
            else
                ll.setVisibility(View.VISIBLE);
        }
更新:-这些是给你的线路。。这将使适当的膨胀和崩溃,没有自由空间

if(ll.getVisibility() == View.VISIBLE)
                    ll.setVisibility(View.GONE);
                else
                    ll.setVisibility(View.VISIBLE);

如果您将使元素可见的代码放入其onClickListener中,它将无法访问(如果它不占用任何屏幕空间,您将无法单击它)。你应该把一个最小高度的布局放在它下面,当你的视图l消失时,新的布局外壳会变得可见,并且它应该得到可见的监听器。这样,在您的视图消失后,新布局将能够将其恢复。

请检查此答案。这个答案对我有用

TranslateAnimation translateAnimation = new TranslateAnimation(0, 50, 0, 0);
          int animationTime = 200;
          translateAnimation.setDuration(animationTime);
          translateAnimation.setFillEnabled(true);
          translateAnimation.setFillAfter(true);
          yourView.startAnimation(translateAnimation);
          yourView.setVisibility(View.VISIBLE);

这段代码在单击列表项后可以正确地隐藏和展开其他布局或视图。if(v==ex)中的“ex”代表什么?