1

我是安卓新手。我可以这样做吗:我有一个包含线性布局的 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>

从代码的任何部分,我可以将它加载到一个线性布局,如:

线性布局 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、...

4

1 回答 1

1

从代码的任何部分,我可以将它加载到一个线性布局,如:

不是您拥有的代码:

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()on a中ListAdapter
于 2013-05-29T11:16:00.277 回答