我创建了这个非常简单的 RelativeLayout
作为我稍后可能想做的事情的测试。目前,应该只有 3 个按钮,second
、alpha
和 mode
彼此相对排列。
我有两个问题:首先,XML 布局文件有问题,我不知道是什么问题,因为我已经彻底检查过它。这会导致布局的第 10 行和第 11 行出现错误。其次,没有像 Android Activity 中通常那样生成 R 文件。这会导致主代码第 11 行出现错误,因为它尝试从 R 文件中调用某些内容。
我的代码如下:
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/alpha"
android:layout_toLeftOf="@id/mode"
android:text="@string/second"
android:layout_alignParentLeft="true" />
<Button
android:id="@+id/alpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/second"
android:layout_alignParentLeft="true"
android:text="@string/alpha" />
<Button
android:id="@+id/mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/second"
android:layout_alignParentLeft="true"
android:text="@string/mode" />
</RelativeLayout>
主要 Activity
代码:
package com.example.TI84;
import android.app.Activity;
import android.os.Bundle;
public class TI84GraphingCalculatorActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
感谢您的帮助!
最佳答案
RelativeLayouts,顾名思义,以相对方式组织元素。因此,您无法从文件上方的小部件引用文件中下方的小部件。此布局将起作用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="@string/alpha" />
<Button
android:id="@+id/second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/mode"
android:text="@string/second" />
<Button
android:id="@+id/alpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/mode"
android:layout_below="@id/mode"
android:text="@string/alpha" />
</RelativeLayout>
您没有获得 R.java,因为当 XML 文件中存在错误时不会生成它。
此外,虽然您没有要求这样做,但您的原始 XML 文件具有循环依赖关系。这意味着两个小部件以一种创建无限循环的方式相互引用,就像 A 在 B 的左侧,B 在 A 的右侧
关于java - 这个简单的RelativeLayout Android 程序有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197609/