1

其實我有一個viewpager,它包含一個Imageview和一個listview,因此當我點擊Listview時,我需要隱藏listview和底部欄,使ImageView全屏顯示所有視圖旁觀者。點擊圖像視圖可以恢復視圖。但我的問題是:Android setOnclick listner to listview

  1. 我無法在ListView上實現onClickListner,使整個視圖來處理水龍頭。我被迫使用onItemclickListner,只有當你點擊該項目時纔會隱藏(這是不需要的)。
  2. 當我點擊ListView(這是裏面的片段)裏面的pager它不會隱藏除當前視圖之外的所有視圖,但我可以隱藏操作欄和底部欄(在片段活動上)。

的屏幕截圖以供參考:

enter image description here

我怎麼能做到這一點還是這有沒有更好的辦法,我可以隱藏意見。

這是我在旁邊的ListView片段:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <ListView 
     android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/transparent" 
     android:cacheColorHint="@android:color/transparent" 
     android:divider="@android:color/transparent" 
     android:listSelector="@android:color/transparent" 
     android:scrollbars="none" /> 

</RelativeLayout> 

這裏是我的片段活動佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/detailLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clickable="true" 
    android:orientation="vertical" > 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/form" > 
    </android.support.v4.view.ViewPager> 

    <RelativeLayout 
     android:id="@+id/form" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="horizontal" 
     android:padding="2dp" > 

     <EditText 
      android:id="@+id/editText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_toLeftOf="@+id/btnSend" 
      android:drawableRight="@drawable/edit_keyboard" 
      android:inputType="textMultiLine" 
      android:maxLines="3" /> 

     <ImageButton 
      android:id="@+id/btnSend" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/send" /> 
    </RelativeLayout> 

</RelativeLayout> 

我在這裏成功與onitemclicklister到ListView:

listComments.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       // TODO Auto-generated method stub 

       if (getSherlockActivity().getSupportActionBar().isShowing()) { 
        getSherlockActivity().getSupportActionBar().hide(); 
        listComments.setVisibility(View.GONE); 
        form.setVisibility(View.GONE); 
       } else { 
        getSherlockActivity().getSupportActionBar().show(); 
        listComments.setVisibility(View.VISIBLE); 
        form.setVisibility(View.VISIBLE); 
       } 
      } 
     }); 

     imageView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       getSherlockActivity().getSupportActionBar().show(); 
       listComments.setVisibility(View.VISIBLE); 
       form.setVisibility(View.VISIBLE); 
      } 
     }); 
+0

Android如何知道你是否點擊一個Item或ListView本身? – tolgap

+0

@tolgap Listview是imageview的開頭,我正在實現片段內的onitemclicklistener,所以我們可以單擊列表項 – sukarno

回答

0

你可以設置listView的clickable屬性並檢查?另外,每當你添加一個新的edittext到你動態地添加它?如果是這樣,這意味着你正在動態地將項目添加到listView。 listView不知道你是否點擊了視圖本身的一個項目,因此當你點擊這個項目時,回調會被註冊,因爲它需要首選項。