首先,我知道这是其他问题的重复,但我无法修复它,所以我创建了自己的问题以寻求帮助。我试图获得RelativeLayout
宽度,它最初成功但我不知道我改变了什么,代码只返回零。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView[] imageViewArray = new ImageView[20];
ArrayList<Float> xarray = new ArrayList<>();
ArrayList<Float> yarray = new ArrayList<>();
rlt = (RelativeLayout) findViewById(R.id.layout);
imageView = (ImageView) findViewById(R.id.imageView);
rlt.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
rlt.getViewTreeObserver().removeOnGlobalLayoutListener(this);
Toast.makeText(MainActivity.this, "right" + rlt.getWidth(), Toast.LENGTH_SHORT).
show();
layoutwidth = rlt.getWidth();
layoutheight = rlt.getHeight();
}
});
}
这是我的activity_main xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/layout"
android:background="@android:color/black"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@mipmap/you"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
简单的,但尚未奏效,请帮忙吗?
答案 0 :(得分:2)
这是因为您的布局宽度尚未设置 你应该覆盖onLayout()方法
D:\PyVirtualEnvs\example_py34\Scripts\activate.bat
答案 1 :(得分:0)
通常你会扩展你感兴趣的View
(RelativeLayout
}并覆盖onSizeChanged()
:
这对你的场景是否有用很难说,因为你的问题非常通用。
答案 2 :(得分:0)
尝试
C:\Users\Sherlock
答案 3 :(得分:0)
也许尝试将视图的代码放入&#34; onPostCreate&#34;方法