我正在使用dimens.xml
文件为不同的版面尺寸分配值(即 dimens.xml@values , dimens.xml@values-sw600dp )
尝试将维度设置为wrap_Content
或match_parent
时,我使用以下方式:
<resources>
<item name="match_parent" format="integer" type="dimen">-1</item>
<dimen name="popup_width">@dimen/match_parent</dimen>
</resources>
并且在布局xml文件中使用此维度时它可以正常工作,但是当尝试以编程方式使用它时,就像声明弹出窗口一样:
PopupWindow pw = new PopupWindow(layout, mContext.getResources().getDimension(R.dimen.popup_width),
ViewGroup.LayoutParams.MATCH_PARENT, true);
pw.showAtLocation(layout, Gravity.CENTER, 40, 0);
它根本不起作用,它认为我向它传递-1dp
值(它执行直接引用),因此布局完全毁了。
那么如何在dimens.xml
文件中声明match_parent dimen以便在我的代码中有效地使用它?或者我怎么能在我的代码中有效地使用当前的维度形式?
答案 0 :(得分:0)
我使用-1.0px
代表match_parent
解决了我的问题,而-2.0px
代表wrap_content
解决了我的问题,dp
正在使用不同的屏幕密度进行缩放{{1这不是对不同屏幕密度的反应(以及我在解决方案中需要的东西):
px
然后我以编程方式使用它:
<dimen name="popup_width">-1.0px</dimen> <!-- for match_parent -->
<dimen name="popup_height">-2.0px</dimen> <!-- for wrap_content -->