You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android XML中资源ID能否在声明前使用?实测编译运行均正常

在Android布局XML中,资源ID是否可以在声明之前被引用?

答案是可以。

Android的布局XML解析过程并非按代码书写顺序线性执行,而是会先完成整个布局文件中所有资源ID的收集与注册,之后再处理各个控件的布局属性(包括ID引用)。所以即使像你Demo里这样,让LinearLayout先引用后面才声明ID的Button,编译和运行都不会出问题。

你的Demo XML代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id ="@+id/view"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@color/black"
        android:layout_alignBottom="@id/bt"/>
    <Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" am a button" />
</RelativeLayout>

对应的Activity代码:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

不过需要注意,虽然语法上允许这种写法,但从代码可读性和维护性角度来说,建议尽量先声明被引用的控件,再写依赖它的控件,这样其他开发者阅读代码时能更清晰地理解布局关系。

内容的提问来源于stack exchange,提问作者Jack_Du

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:32:22