Android-BottomSheetDialogFragment高度和圆角

网上收集测试有效,记录以便使用。

显示布局实际高度。

override fun onStart() {
        super.onStart()
        val dialog = dialog as BottomSheetDialog
        val bottomSheet = dialog.delegate.findViewById<View>(com.google.android.material.R.id.design_bottom_sheet)
        bottomSheet?.layoutParams?.height = ViewGroup.LayoutParams.WRAP_CONTENT
        val view = view
        view?.post {
            val parent = view.parent as View
            val params = parent.layoutParams as CoordinatorLayout.LayoutParams
            val behavior = params.behavior
            val bottomSheetBehavior = behavior as BottomSheetBehavior<*>?
            bottomSheetBehavior!!.peekHeight = view.measuredHeight
        }
    }

透明背景圆角。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp" />
    <solid android:color="@color/color_item" />
</shape>

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NORMAL, R.style.CommentDialogTheme)
    }

<style name="CommentDialogTheme" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/CommentDialogStyle</item>
</style>

<style name="CommentDialogStyle" parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@color/transparent</item>
</style>

参考:https://www.jianshu.com/p/a3f238d4cdc7
https://blog.csdn.net/qq_16624353/article/details/100042975

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,可以通过设置圆角大小来实现根据高度来调整视图的圆角效果。首先,需要在XML布局文件中定义一个圆角的Shape,指定圆角的半径大小。然后,在Java代码中根据控件的高度动态设置圆角半径。 1. 在res/drawable文件夹下创建一个新的XML文件,例如`rounded_background.xml`。在该文件中添加以下代码: ```xml <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="8dp" /> <!-- 这里指定了圆角的半径大小为8dp,你可以根据实际需要进行调整 --> <solid android:color="#FFFFFF" /> <!-- 这里指定了背景颜色为白色,你可以根据自己的需求进行调整 --> </shape> ``` 2. 在布局文件中,将你想要设置圆角的控件的背景设置为该Shape。例如: ```xml <Button android:id="@+id/myButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_background" android:text="Click Me" /> ``` 3. 在Java代码中,动态设置圆角半径。首先,获取控件的高度,然后根据高度设置圆角半径。 ```java Button myButton = findViewById(R.id.myButton); // 获取控件的高度 int h = myButton.getHeight(); // 根据高度设置圆角半径 myButton.setCornerRadius(h/2); ``` 以上代码中,`h/2`表示将圆角半径设置为控件高度的一半,你可以根据需要进行调整。 通过以上步骤,就可以根据控件的高度来动态设置圆角大小了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值