android - layout_width 为 wrap_content 时如何获取自定义 View 的宽度?

标签 android layout view width onmeasure

假设我们有在 XML 中声明的自定义 View ,并且我们覆盖了它的 onMeasure() 方法:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    // Maximal length of line is width of this View 
    width = this.getLayoutParams().width;

如果设置了 XML 属性 android:layout_width="100px"width 返回值 100。但是如果属性是 android:layout_width="match_parent"android:layout_width="wrap_content" 然后它返回 -1 或 -2。那么在这种情况下,我们如何才能测量到该 View 的宽度呢?

最佳答案

使用

width = MeasureSpec.getSize(widthMeasureSpec);

关于android - layout_width 为 wrap_content 时如何获取自定义 View 的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183314/

相关文章:

java - 设置 TextView 文本时应用程序卡住

android - 使用简单的光标拖放

java - 如何限制 Google map 中的缩放级别和可视区域?

ios - iPhone X 主页指示器行为

javascript - subview 中的事件未触发 - Backbone.js

ios - 如何在可以沿此 webView 平移的 WKWebView 上添加 subview ?

android - @null 与 #00000000 是否有任何差异

html - 有没有办法在 Css 中重新排列 block (flex)的顺序

android - View 的 setX()、setY() 和 layout()

html - 无法让我的导航正确 float 。如何让我的导航向右移动?