【发布时间】:2015-11-12 14:16:01
【问题描述】:
我的 FAB onClick 无法在 API 17 上运行,但在 API 21 上运行良好。
我正在使用:
compile 'com.android.support:design:23.+'
FAB 布局:
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_gravity="bottom"
android:layout_marginBottom="26dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:backgroundTint="#FFC107"
android:clickable="true"
android:elevation="@dimen/design_fab_elevation"
android:src="@drawable/ic_add_24dp"
app:borderWidth="0dp" />
关于活动:
myFAB = (FloatingActionButton) findViewById(R.id.myFAB);
callCadastroEncoemnda();
protected void callCadastroEncoemnda() {
myFAB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, newPackage.class);
MainActivity.this.startActivity(intent);
}
});
}
【问题讨论】:
-
请定义“不工作”。你的应用程序崩溃了吗? logcat有什么东西吗?它表现出什么行为?你期望它做什么?
-
@MH。什么也没发生,不崩溃,logcat里什么都没有,就好像我没有点击一样
-
您是否尝试从视图中删除
android:clickable="true"?如果您设置点击侦听器,它看不到您需要它。我很快在我身边的一个 API 17 设备上进行了测试,但对我来说它可以工作。那就是:我没有你描述的问题。你可以在onClick()回调中放置一个断点来查看它是否触发?newPackage.class在我看来也有点可疑 - 它不符合 Java 命名约定。 -
@MH。我已经删除了
android:clickable="true",但还是一样。我已经在 onClick 上放了一个断点,它没有被调用。问题是它在 API 21+ 上完美运行,但在 API 17 上却不行。newPackage.class是我创建的一个 Activity,并且在 API 21+ 上完美运行。
标签: java android floating-action-button