use*_*104 5 android textview relativelayout imageview android-layout
目前我有几个视图,屏幕分为两个部分
例:
text1     image1
text2
text3
text4
问题是,如果image1很高,它将与左侧的textview重叠,所以我用左边强制textview宽度不超过imageview的左边.
 android:layout_toLeftOf="@id/imageView1" 
但是,每个textview都与imageview的左边对齐,因为在创建视图之前我不知道它的高度.我希望在imageview基线下面的所有textview删除布局规则android:layout_toLeftOf
所以我搜索解决方案并找到两种方法?
1.onWindowFocusChanged
2.getViewTreeObserver().addOnGlobalLayoutListener
两者都可以获得视图的y轴.
问题是:
 1. what is the difference between them ?
 2. I tried approach 2 , but it is not working, how to fix it? 
码:
        image.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            ImgY = image.getY();
        }
    });
    lng.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            if (lng.getY() > ImgY) {
                lng.removeRule(RelativeLayout.LEFT_OF);
            }
        }
    });
错误是我想设置一个全局值来存储imageview的y,但它警告The final local variable ImgY cannot be assigned, since it is defined in an enclosing type同样,removeRule函数返回
 The method removeRule(int) is undefined for the type TextView
非常感谢您的帮助.
| 归档时间: | 
 | 
| 查看次数: | 2575 次 | 
| 最近记录: |