2015-03-30 103 views
0

經過一些嘗試後,我能夠生成一個半透明的背景,當我點擊我的浮動按鈕。現在的問題是,「新背景」只會改變顏色。在此之下,我有一個回收視圖,我仍然可以向上或向下swype並與之交互。我現在需要的是在佈局下使用recyclerview來阻止每個動作,讓我可見。我能做的唯一的事情就是:防止觸摸一個視圖android

  • 如果我在半透明視圖中單擊晶圓廠崩潰

這是實際使用的代碼:

OnClickListener listener = new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      if (DrawerActivity.instance.rootFab.isExpanded()) 
      { 
       whiteLayout.setVisibility(View.GONE); 
      } 
      else 
      { 
       whiteLayout.setVisibility(View.VISIBLE); 

      } 
      mainFab.toggle(); 
     } 
    }; 

,當然還有:

rootFab.setAddButtonClickListener(listener); 

給它聽者。所以,簡單地說,點擊主晶圓廠(我用多個晶圓廠庫),它使可見的就是喜歡的佈局:

---- 
---- 
<android.support.v7.widget.RecyclerView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/status" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" /> 
     <LinearLayout 
      android:id="@+id/semi_white_bg" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/white_semi_transparent" 
      android:orientation="vertical" 
      android:visibility="gone" > 
     </LinearLayout> 
--- 
--- 

如果我按工廠重新佈局消失...所以我的問題是,我怎麼能做同樣的事情,但點擊這個背景,但沒有「接觸」它的recyclerview?

回答

2

您可以告訴Android您的視圖是「可點擊」的。這樣您的視圖將消耗觸摸事件,並且它們不會繼續傳遞到RecyclerView

爲了紀念視圖「點擊」只需添加以下標誌到你的XML佈局:android:clickable="true"

---- 
---- 
<android.support.v7.widget.RecyclerView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/status" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" /> 
     <LinearLayout 
      android:id="@+id/semi_white_bg" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/white_semi_transparent" 
      android:orientation="vertical" 
      android:clickable="true" 
      android:visibility="gone" > 
     </LinearLayout> 
--- 
--- 

另外,如果你用你的觀點只是一個背景 - 我看不出有任何理由爲什麼你需要重量爲LinearLayout。您可以在這裏使用View

---- 
---- 
<android.support.v7.widget.RecyclerView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/status" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" /> 
     <View 
      android:id="@+id/semi_white_bg" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/white_semi_transparent" 
      android:clickable="true" 
      android:visibility="gone" /> 
--- 
--- 
+0

是的,事實上,我更新了代碼與視圖。順便說一句,正確!現在我的觀點被標記爲可點擊。我無法再觸碰RecyclerView。但是,我可以在視圖上創建一個onClick方法,以使可能如果觸及晶圓廠崩潰和視圖消失?即使現在是android:clickable =「true」? – 2015-03-30 22:33:43

+0

當然,'onClickListener'仍然可以添加 – 2015-03-30 22:35:29

+0

不錯,謝謝! – 2015-03-30 22:40:09