相关疑难解决方法(0)

addOnLayoutChangeListener和onLayout之间的区别(已更改)?

我上课了

public class FancyView extends View implements View.OnTouchListener {
Run Code Online (Sandbox Code Playgroud)

我需要获得视图的高度/宽度.

(它可能会随着设备旋转而改变.当然,在初始化时也不知道高度/宽度.)

你可以这样做...

所以,实际上在类中FancyView只是覆盖onLayout(changed)

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
    int hh = getHeight();
    Log.d("~", "Using onLayout(changed), height is known: " +hh);
}
Run Code Online (Sandbox Code Playgroud)

或者,你可以这样做......

再次在课堂内FancyView使用addOnLayoutChangeListener

private void init() {
    addOnLayoutChangeListener(new OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int left, int top,
                                   int right, int bottom, int oldLeft, int oldTop,
                                   int oldRight, int …
Run Code Online (Sandbox Code Playgroud)

java android

6
推荐指数
1
解决办法
2629
查看次数

标签 统计

android ×1

java ×1