我有以下佈局:浮動按鈕將不會提高OnClick事件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/rlMap">
<org.mapsforge.map.android.view.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"/>
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/windArrow"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_gravity="top|right|end"
android:src="@drawable/arrow"
android:layout_alignStart="@+id/fab" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right|end"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/settings"
android:clickable="true"/>
</RelativeLayout>
而且在OnCreate方法如下代碼:
...
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG,"FAB Setting Clicked");
Intent i = new Intent(getApplicationContext(), AppPreferences.class);
startActivity(i);
}
});
...
但是,當我按下按鈕沒有反應,則意圖不會運行,並且日誌不會被寫入。
按鈕動畫是的工作和我每次按出現以下日誌消息按鈕:
d/ViewRootImpl:ViewPostImeInputStage ACTION_DOWN
所以似乎有一些反應。
我在做什麼錯?
你在哪裏設置點擊監聽器?在「活動」或「片段」內?你可以驗證監聽器是否設置爲按鈕?您可以在'fab.setOnClickListener'之前/之後調試或打印日誌。 – LordRaydenMK
偵聽器正在被設置在最終從Activity派生的類中。監聽器正在設置中,我在前後使用fab.hasOnClickListeners()的日誌調試進行了檢查。 – CaptainNemo
您可以在xml中添加一個點擊事件,例如 - (android:onClick =「runThis」) - 然後在Activity add - (public void runThis(View v){.....}).Try這種方式,看看它是否有效 – Tasos