我正在尝试获取RelativeLayout
的尺寸。
许多人告诉我使用以下代码:
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.myRelativeLayout);
int layoutWidth = relativeLayout.getWidth();
int layoutHeight = relativeLayout.getHeight();
我的问题是,我在R.id
中找到的所有ID都是按钮,文本视图以及所有类型。没有像布局ID那样的东西!
然后我尝试写:
relativeLayout = (RelativeLayout) findViewById(R.layout.main_activity);
运行时 relativeLayout
为null。所以它也是不正确的。
我是否需要手动将布局ID添加到R.id
?我不这么认为。
但是为什么R.id
中的布局没有ID?
答案 0 :(得分:3)
这取决于你的意思是什么布局。默认情况下,在创建活动或XML布局时,它将存储为R.layout.xxx。但是,让我们说,在布局中,你有另一种布局(在这种情况下是嵌套布局),你必须手动“id”你想要引用的布局。
例如:
<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"
tools:context=".MainActivity" >
<RelativeLayout
android:id="@+id/CallMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="139dp"
android:layout_marginTop="130dp" >
</RelativeLayout>
<RelativeLayout
android:layout_width="@+layout/test"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/CallMe"
android:layout_below="@+id/CallMe"
android:layout_marginTop="64dp" >
</RelativeLayout>
</RelativeLayout>
然后你可以通过R.id.CallMe引用第一个相对布局,然后通过R.layout.test引用第二个布局
您可以将其命名为任何名称,它不必是布局或ID。 希望有所帮助