我是新手Android。我可以这样做:我有一个包含线性布局的xml文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayoutID"
android:orientation="vertical"
android:layout_width="150dp"
android:layout_height="150dp"
android:gravity="center">
<ImageView
android:id="@+id/imageID"
android:contentDescription="@string/nothing"
android:layout_width="80dp"
android:layout_height="80dp"
android:scaleType="centerCrop"
/>
<TextView
android:id="@+id/textID"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:textIsSelectable="false"/>
</LinearLayout>
从代码的任何部分,我可以将其加载到linearLayout,如:
LinearLayout ll = new LinearLayout(R.id.linearLayoutID); ImageView iv = (ImageView) ll.findViewById(R.id.imageID); TextView iv = (TextView) ll.findViewById(R.id.textID);
请记住我想问的问题是来自单独的布局文件,我们不加载到活动或片段中,从而使用findViewByID,我们直接将xml文件加载到UI组件,如LinearLayout,ImageView,..
答案 0 :(得分:1)
从代码的任何部分,我可以将其加载到linearLayout,如:
不使用您拥有的代码:
LinearLayout ll = new LinearLayout(R.id.linearLayoutID);
相反,请使用:
LinearLayout ll = (LinearLayout)getLayoutInflater().inflate(R.layout.whatever_name_you_gave_it, theParentViewGroup, true);
其中:
theParentViewGroup
是容纳此LinearLayout
true
,如果您希望立即将LinearLayout
添加到容器中,或false
如果您自己将其添加到容器中(或其他框架代码将添加)它到容器,例如getView()
上的ListAdapter
}