0

我在使用Google的支持設計庫時遇到了FloatingActionButton問題。該按鈕和onClickListener工作正常,但問題在這裏:隱藏/顯示後的浮動操作按鈕onClick

當我隱藏按鈕,然後顯示它,按鈕不直接執行onClick方法,當第一次點擊時,它必須點擊2次工作。我在onClick中沒有做任何複雜的事情,可能需要一些時間才能爲視圖運行簡單的setVisibility()。這裏是我的代碼,即使我懷疑的東西是有錯:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     View searchL = findViewById(R.id.searchLayout); 
     searchL.setVisibility(View.VISIBLE); 
    } 
}); 

,並在XML晶圓廠標籤:

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="56dp" 
    android:layout_height="56dp" 
    android:layout_gravity="bottom|end" 
    android:src="@drawable/ic_search_white_24dp" 
    android:theme="@style/fabTheme" 
    android:layout_margin="15dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 

編輯:我刪除了OnCLickListener和顯然FloatingActionButton已經有一個clickListener設置爲它,因爲當我點擊動作按鈕時,它會產生連鎖反應。發生什麼事 ?這是我的活動中唯一的代碼。使用OnTouchListener而不是點擊監聽,似乎解決了問題,但它並沒有解釋發生了什麼


+0

很難從代碼在這裏明白了,它似乎罰款。 請上傳整個代碼,或至少告訴你點擊的位置。 另外,請提供您隱藏晶圓廠的代碼。 –

+0

這就是事情,我沒有做其他任何特殊的事情,我甚至創建了一個空的活動來測試這個和一個完全不同的應用程序只是爲了調試這個問題,我認爲它是一個支持庫中的錯誤,'onClickListener'正在在'onCreate'方法中設置,我使用'fab.hide()'和'fab.show()'隱藏並顯示按鈕 –

回答

0

而不是使用用於浮動的操作按鈕動畫hide()show()方法,使用fab.setVisibility(View.GONE)fab.setVisibility(View.VISIBLE)

+0

以及我想使用.shide()和.show()必須處理動畫 –

0

好消息答案就在這裏:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 


      view.setVisibility(View.GONE); 

     } 
    });