我编译了这个,
<FrameLayout
android:id="@+android:id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
遇到错误:
Description Resource Path Location Type
error: creating resource for external package android: id/realtabcontent. fragment_tabs_fragment.xml /ApiDemos/res/layout line 43 Android AAPT Problem
error: Error: No resource found that matches the given name (at 'id' with value '@+android:id/realtabcontent'). fragment_tabs_fragment.xml /ApiDemos/res/layout line 43 Android AAPT Problem
note: did you mean to use @+id instead of @+android:id? fragment_tabs_fragment.xml /ApiDemos/res/layout line 43 Android AAPT Problem
Unparsed aapt error(s)! Check the console for output. ApiDemos Unknown Android Packaging Problem
如果我改为
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
编译成功。
android的唯一区别:id =&#34; @ + android:id / realtabcontent&#34;和android:id =&#34; @ + id / realtabcontent&#34;?
答案 0 :(得分:0)
我认为
android:id="@+android:id/realtabcontent"
是错的。
当您想提供一个ID时,通常会使用
android:id="@+id/your_view"
但是,当您希望android系统识别xml中的特定视图并且不必显式告诉它(系统)时,您可以使用
android:id="@android:id/listview"
或者例如,您正在为SEEKBAR创建自定义可绘制对象,您将像这样给IDS
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:gravity="center_vertical|fill_horizontal">
<shape android:shape="rectangle"
android:tint="#51F8F5F5">
<corners android:radius="2dp"/>
<size android:height="10dp" />
<solid android:color="#ffd600" />
</shape>
</item>
<item android:id="@android:id/progress"
android:gravity="center_vertical|fill_horizontal">
<scale android:scaleWidth="100%">
<selector>
<item android:state_enabled="false"
android:drawable="@android:color/transparent" />
<item>
<shape android:shape="rectangle"
android:tint="#FFFFFF">
<corners android:radius="2dp"/>
<size android:height="10dp" />
<solid android:color="#FFFFFF" />
</shape>
</item>
</selector>
</scale>
</item>
</layer-list>
立即注意,android:id="@android:id/background" ...&.. android:id="@android:id/progress"
这些用于android识别这两个项目,不需要明确告诉它该项目是背景并且该项目是进度。
希望它可能对某人有帮助,如果是的话,至少应该值得+1
答案 1 :(得分:-1)
它会为您使用findViewById(R.id.___)
时可以找到的元素创建唯一标识符
从difference between @id and @android:id可以看出,@ android:id指的是Android框架中特定的预定义名称空间。