我正在使用com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
,并试图通过调用.shrink()
来缩小该按钮,但什么也没发生。
这是我的按钮xml:
<androidx.coordinatorlayout.widget.CoordinatorLayout ... >
...
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/exploring_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginBottom="-24dp"
android:text="Start Exploring"
app:layout_anchor="@+id/bottom_sheet"
app:layout_anchorGravity="top|end"
app:icon="@drawable/ic_walking" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
我的碎片代码:
Log.d(TAG, "shrinking start")
binding.exploringBtn.shrink(object :
ExtendedFloatingActionButton.OnChangedCallback() {
override fun onShrunken(extendedFab: ExtendedFloatingActionButton?) {
super.onShrunken(extendedFab)
Log.d(TAG, "onShrunken: ")
}
override fun onExtended(extendedFab: ExtendedFloatingActionButton?) {
super.onExtended(extendedFab)
Log.d(TAG, "onExtended: ")
}
})
Log.d(TAG, "shrinking end")
我的logcat输出(证明在我执行.shrink()
方法两次但什么都没发生之后(:
2021-07-13 20:28:41.453 17098-17098/uk.co.explorer D/kesD: listenForPathData: isExploring: true
2021-07-13 20:28:41.454 17098-17098/uk.co.explorer D/kesD: shrinking start
2021-07-13 20:28:41.465 17098-17098/uk.co.explorer D/kesD: shrinking end
2021-07-13 20:28:42.089 17098-17098/uk.co.explorer D/kesD: checkIfNeedToRequestPermissions: need to request permissions: false
2021-07-13 20:28:53.917 17098-17098/uk.co.explorer D/kesD: listenForPathData: isExploring: true
2021-07-13 20:28:53.918 17098-17098/uk.co.explorer D/kesD: shrinking start
2021-07-13 20:28:53.922 17098-17098/uk.co.explorer D/kesD: shrinking end
我的渐变材料依赖性看起来像:
implementation 'com.google.android.material:material:1.4.0'
为了解决这个问题,我简单地将ExtendedFloatingActionButton
封装在LinearLayout
中。不是最优的,但解决了问题。我相信这个问题可能与我在同一屏幕上的底部页面布局有关。代码如下:
<LinearLayout
android:id="@+id/extend_btn_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@+id/bottom_sheet"
app:layout_anchorGravity="top|end"
android:elevation="4dp">
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/exploring_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="Start Exploring"
app:icon="@drawable/ic_walking" />
</LinearLayout>