安卓系统:ExtendedFloatingActionButton.shifk()不起作用



我正在使用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>

相关内容

  • 没有找到相关文章

最新更新