java - 安卓自定义 View : MATCH_PARENT with OnDaw don't work

标签 java android layout layoutparams

我是 Android 新手,但遇到了一个简单的问题。 我有一个垂直线性布局,如果我在这里放置一个普通按钮,并为它指定宽度和高度的 MATCH_PARENT 标志,按钮将填满所有空间。一切正常。

现在我有了一个简单的自定义 View (一个扩展 View 的类),我重写了 OnDraw 方法以在 View 中间画一个十字。为了绘制十字,我需要获得控件的宽度和高度,如果在 Eclipse 的 UI 布局编辑器中我设置了固定的宽度和高度,它会正确工作(我直接在 Eclipse 中看到十字的预览)但是如果我将 View 扩展到边界我只得到 WARP_CONTENT(使用按钮我得到 MATCH_PARENT),没问题,我在 XML 中更改它,但 LayoutParams 宽度和高度将返回 0! (我直接在eclipse的预览中看到错误!)为什么?

我试图在 OnWindowFocusChanged 方法中手动设置宽度和高度以等待,但它总是给我 0。

问题是 View 实际上有正确的尺寸但是当我调用 getLayoutParams().width 它给我 0,所以我在正确的位置看到一个白色矩形( View 的白色背景),但是十字画在左上角!

抱歉我的英语不好。 谢谢。 毛罗。

最佳答案

我想你需要为你的 View 设置这个参数。

android:layout_alignTop

或者与此相关的东西。我猜

关于java - 安卓自定义 View : MATCH_PARENT with OnDaw don't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11591482/

相关文章:

java - Spring异常错误

java - 有没有像 Single.empty()

java多线程模板基准测试

java - 带标题的 JPanel

java - 全屏上的 Swing 布局边框边距

java - 使用GridBagLayout在一个面板中设置多个组件,但我不想填满整个面板

java - 如何使用 typescript 中的属性对对象数组进行分组?

java - ViewPager2 堆栈 PageTransform

android - pendingDynamicLinkData 显示为空

Android Geocoder 只返回一个地址