【问题标题】:Align two imageView with textView XML in android在android中将两个imageView与textView XML对齐
【发布时间】:2013-03-26 21:57:30
【问题描述】:

我的 xml for android 有问题。 我有这个布局可以在 Listview 的每一行中使用它(效果很好)。

我想放两行(头部和正文)的文本,并在第一行的右边对齐我要放两个ImageView。 (还有一个隐藏的textView)

类似这样的:

我的问题是当我尝试同时放置两个 imageViews 时(只有一个显示正常,但两个不显示任何内容)。

这是我的 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TvIdGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:textStyle="bold"
        android:visibility="gone" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/TvName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:textSize="30sp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/ImgNewConvGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:src="@drawable/new_messages" />

        <ImageView
            android:id="@+id/ImgNewGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:src="@drawable/new_group" />
    </LinearLayout>

    <TextView
        android:id="@+id/TvDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="22sp"
        android:textStyle="normal" />

</LinearLayout>

对不起我的英语,提前谢谢你!

【问题讨论】:

  • 你准备好使用LinearLayout了吗?如果没有,RelativeLayout 应该会给你你想要的一切。
  • 是的,你是对的。谢谢!

标签: android xml listview imageview alignment


【解决方案1】:

如果我理解正确,那么我相信这应该接近您正在寻找的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TvIdGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Test"
        android:textSize="12sp"
        android:textStyle="bold"
        android:visibility="gone" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/TvName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="Test"
            android:textSize="30sp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/ImgNewConvGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:gravity="right"
            android:src="@drawable/new_messages" />

        <ImageView
            android:id="@+id/ImgNewGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/ImgNewConvGroup"
            android:gravity="right"
            android:src="@drawable/new_group" />
    </RelativeLayout>

    <TextView
        android:id="@+id/TvDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Test"
        android:textSize="22sp"
        android:textStyle="normal" />

</LinearLayout>

尝试一下,让我知道这是否适合您,我将内部布局从 LinearLayout 更改为 RelativeLayout,并创建了我认为您在相关位置中寻找的内容。

注意:小心您的TextView 延伸到足以落后于ImageViews,如果发生这种情况,那么最好(设置为ImageViews):

android:layout_below="@+id/TvName"

同时删除:

android:layout_centerVertical="true"

【讨论】:

  • 目前我无法证明,但我确信稍后我会尝试它。非常感谢您的帮助!
  • 如果您有任何问题,请告诉我,我会尽我所能提供帮助。我确实对它进行了测试,它似乎工作正常。
【解决方案2】:

<TextView
    android:id="@+id/TvIdGroup"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="TV"
    android:textSize="12sp"
    android:textStyle="bold"
    android:visibility="visible" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TvName"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_weight="1"
        android:text="TVName"
        android:textSize="30sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/ImgNewConvGroup"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:gravity="right"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:id="@+id/ImgNewGroup"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:gravity="right"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

<TextView
    android:id="@+id/TvDescription"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TVDescription"
    android:textSize="22sp"
    android:textStyle="normal" />

看看你在找什么。

【讨论】:

    【解决方案3】:

    就是很多代码都会写结构

    <LinearLayout android:orientation="vertical">
        <LinearLayout android:orientation="horizontal">
            <LinearLayout android:orientation="horizontal">
               <TextView/>
            </LinearLayout>
            <LinearLayout android:orientation="horizontal" android:gravity="right">
                <ImageView/>
                <ImageView/>
            </LinearLayout>
        </LinearLayout>
        <LinearLayout android:orientation="vertical">
            <TextView/>
        </LinearLayout>
    </LinearLayout>
    

    【讨论】:

    • 谢谢,但我的问题出在 ImageView 里面的参数上
    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多