在另一个布局中以编程方式膨胀布局 [英] Inflate layout programmatically within another layout

查看:43
本文介绍了在另一个布局中以编程方式膨胀布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要 Android 应用方面的帮助.我需要在另一个布局中膨胀一个布局,但我不知道该怎么做.我的 xml 代码是这样的:

I need help with my android app. I need inflate a layout within another layout and I dont know how I do. My xml code is this:

  • item.xml - 我需要膨胀多个 xml(取决于变量数)

  • item.xml - I need inflate multiple xml (depending on a variable number)

    <RelativeLayout
         android:id="@+id/cartel_N1"
         android:layout_width="150dp"
         android:layout_height="match_parent"
         android:background="@color/tabhost_background_pressed"
         android:layout_marginRight="22dp"
         android:orientation="vertical" >

    <ImageView 
        android:id="@+id/img_N1"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:layout_marginRight="15dp"
        android:src="@drawable/mcdonalds_icon" />

    <TextView 
        android:id="@+id/title_N1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="McDonals del CC Alcampo"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:textSize="15sp" />

    <TextView 
        android:id="@+id/categoria_N1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="CATEGORIA"
        android:textSize="16sp"
        android:textStyle="bold"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp" />

    <RelativeLayout 
        android:id="@+id/stars_and_distance_N1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/stars_N1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/stars_25"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="7dp" />


        <TextView
            android:id="@+id/distance_N1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="200m"
            android:textSize="12sp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="15dp"
            android:gravity="center_vertical"
            android:layout_marginTop="3dp" />


        <ImageView
            android:id="@+id/icon_pos_N1"
            android:layout_width="10dp"
            android:layout_height="10dp"
            android:src="@drawable/marker_distance"
            android:layout_toLeftOf="@id/distance_N1"
            android:layout_marginTop="7dp" />

    </RelativeLayout><LinearLayout
    android:id="@+id/cartel_N1"
    android:layout_width="150dp"
    android:layout_height="match_parent"
    android:background="@color/tabhost_background_pressed"
    android:layout_marginRight="22dp"
    android:orientation="vertical" >

    <ImageView 
        android:id="@+id/img_N1"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:layout_marginRight="15dp"
        android:src="@drawable/mcdonalds_icon" />

    <TextView 
        android:id="@+id/title_N1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="McDonals del CC Alcampo"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:textSize="15sp" />

    <TextView 
        android:id="@+id/categoria_N1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="CATEGORIA"
        android:textSize="16sp"
        android:textStyle="bold"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp" />

    <RelativeLayout 
        android:id="@+id/stars_and_distance_N1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/stars_N1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/stars_25"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="7dp" />


        <TextView
            android:id="@+id/distance_N1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="200m"
            android:textSize="12sp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="15dp"
            android:gravity="center_vertical"
            android:layout_marginTop="3dp" />


        <ImageView
            android:id="@+id/icon_pos_N1"
            android:layout_width="10dp"
            android:layout_height="10dp"
            android:src="@drawable/marker_distance"
            android:layout_toLeftOf="@id/distance_N1"
            android:layout_marginTop="7dp" />

    </RelativeLayout>

  • 这是我的主要 xml:

  • This is my main xml:

    <ScrollView
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
    
      <LinearLayout
           android:id="@+id/container_destacado"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="vertical" >
    
               <!-- Inflate multiple xml file here -->
    
          </LinearLayout>
    </ScrollView>
    

  • 推荐答案

    你可以使用类似的东西

    LayoutInflater inflater = LayoutInflater.from(context);
    
    //to get the MainLayout
    View view = inflater.inflate(container_destacado, null);
    ...
    //Avoid pass null in the root it ignores spaces in the child layout
    
    View inflatedLayout= inflater.inflate(R.layout.yourLayout, (ViewGroup) view, false);
    containerDestacado.addView(inflatedLayout);
    

    这篇关于在另一个布局中以编程方式膨胀布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆