首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中的setPeekHeight()没有给出与xml中相同的结果

java中的setPeekHeight()没有给出与xml中相同的结果
EN

Stack Overflow用户
提问于 2018-10-29 02:54:14
回答 1查看 387关注 0票数 1

我正在使用我的应用程序中的底页。

代码语言:javascript
复制
<include
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        layout="@layout/layout_book"

        app:layout_behavior="@string/bottom_sheet_behavior"
        app:behavior_peekHeight="0dp"
        />

这是我最下面的工作表,当我将peek height从这个xml更改为120dp时,我得到了正确的视图。但是,当尝试在java中执行相同的操作时,我得到了不同的结果,即高度比xml的要小。

代码语言:javascript
复制
bottomSheetBehavior.setPeekHeight(120);

理想情况下,它不应该是这样的。我对此一无所知。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 03:23:08

setPeekHeight() (和许多其他与大小/尺寸相关的方法)接受像素值作为它们的参数。这意味着您需要首先将dp值转换为px。最好的方法是定义一个dimen资源值,然后在代码中获取它:

代码语言:javascript
复制
<dimen name="peek_height">120dp</dimen>
代码语言:javascript
复制
int peekHeightPx = context.getResources().getDimensionPixelSize(R.dimen.peek_height);
bottomSheetBehavior.setPeekHeight(peekHeightPx);

或者,您也可以使用DisplayMetrics自己进行计算:

代码语言:javascript
复制
int peekHeightPx = (int) (context.getResources().getDisplayMetrics().density * 120);
bottomSheetBehavior.setPeekHeight(peekHeightPx);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53034999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档