android - 布局 Inflate 的定位问题

标签 android inflate

我有一个布局 A,由一组 2 个文本和一个图像组成,然后是另一组 2 个文本和一个图像(它们由一条线分隔)。我想膨胀这个布局(比方说 A)并将它放在另一个布局中(比方说 B)。问题是图像和分隔符位于 B 的中间,而我希望它们位于 A 的中间。我的代码是:

布局A(待充气):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootLayout"
    android:layout_width="fill_parent"
    android:layout_height="55dp"
    android:background="@drawable/bg_numeros"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/separator"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/divisoria_numeros" />

    <ImageView
        android:id="@+id/artistsDoll"
        android:layout_width="60dp"
        android:layout_height="fill_parent"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/separator"
        android:scaleType="fitCenter"
        android:src="@drawable/boneco_artistas_numeros" />

    <ImageView
        android:id="@+id/songsDoll"
        android:layout_width="60dp"
        android:layout_height="fill_parent"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:scaleType="fitCenter"
        android:src="@drawable/bonecos_numeros" />

    <TextView
        android:id="@+id/songsNumbers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/artistsDoll"
        android:layout_toLeftOf="@+id/songsDoll"
        android:layout_toRightOf="@+id/separator"
        android:text="blabla"
        android:textColor="#333333"
        android:textSize="14dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/songsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/songsNumbers"
        android:layout_toLeftOf="@+id/songsDoll"
        android:layout_toRightOf="@+id/separator"
        android:text="SOME SONGS"
        android:textColor="#999999"
        android:textSize="11dp" />

    <TextView
        android:id="@+id/artistsNumbers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/artistsDoll"
        android:layout_toLeftOf="@+id/artistsDoll"
        android:text="blabla"
        android:textColor="#333333"
        android:textSize="14dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/artistsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/artistsNumbers"
        android:layout_toLeftOf="@+id/artistsDoll"
        android:text="SOME ARTISTS"
        android:textColor="#999999"
        android:textSize="11dp" />

</RelativeLayout>

我正在像这样插入膨胀的布局:

RelativeLayout A = (RelativeLayout) Patterns.mainContext
                      .getLayoutInflater()
                      .inflate(R.layout.A, null);

RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
rlp.addRule(RelativeLayout.BELOW, someTopLayout.getId());
B.addView(A, rlp);

请注意,虽然为图像设置了属性 android:layout_height="fill_parent"android:layout_centerHorizo​​ntal="true",但我希望它们以 A 为中心,不是 B。

有什么帮助吗??

最佳答案

此处找到的解决方案:How to use layoutinflator to add views at runtime? 解决了我的问题。

RelativeLayout A = (RelativeLayout) Patterns.mainContext
                  .getLayoutInflater()
                  .inflate(R.layout.A, parentLayout, false);

关于android - 布局 Inflate 的定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564568/

相关文章:

打开外部 URL 时出现 "startActivityForResult(Intent,int) in Fragment has been deprecated"的 Java 解决方案?

java - Zlib 压缩在 Java 中使用 Deflate 和 Inflate 类

javascript - 膨胀/解压缩部分 gzip 的算法

c++ - 使用 gzread 读取直到 EOF 并膨胀浮点值

android - 在平板电脑上强制关闭和 android.view.InflateException

java - Android AVD 管理器 : Can't create new device definition (java. lang.NullPointerException)

android - 更改复选框值而不触发 onCheckedChanged

android - 如何提高加速度计和罗盘传感器的精度?

java - 如何在android中创建带标题的水平图片列表?

java - 应用程序不从网络加载任何图像