在onCreate期间,ListView无法在invsibile后显示

时间:2016-02-19 08:08:10

标签: android listview

我有问题我想在onCreate期间隐藏listVeiw,但问题是当我将listview隐藏为不可见时,setOnTouchListener将无效。但如果我在setOnTouchListener之前删除lstv.setVisibility(View.INVISIBLE);,则setOnTouchListener为工作,但我需要在启动或onCreate期间首先隐藏我的列表视图。

提前谢谢。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        lstv.setVisibility(View.INVISIBLE);
        vdo.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                lstv.setVisibility(View.VISIBLE);
                lstv.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        lstv.setVisibility(View.INVISIBLE);
                    }
                }, 3000);
                return true;
            }
        });


}

activity_main.xml中

<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#000000"
                tools:context=".MainActivity" >

    <VideoView
            android:id="@+id/vdo"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
    />

    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/listview"
              android:layout_width="229dp"
              android:layout_height="fill_parent"
              android:smoothScrollbar="true"
              android:soundEffectsEnabled="true"

             />

</FrameLayout >

2 个答案:

答案 0 :(得分:1)

隐藏ListView并在vdo上接收onTouchEvent 你应该改变

lstv.setVisibility(View.INVISIBLE);

lstv.setVisibility(View.GONE);

希望这个帮助

答案 1 :(得分:1)

您可以在布局(xml)中隐藏列表视图。喜欢这个

 <ListView 
   ....
   ....
  android:visibility="gone"
  />