【问题标题】:Text alignment in the relative layout android相对布局android中的文本对齐
【发布时间】:2014-04-09 20:35:21
【问题描述】:

我试图在我的Listview 中动态地膨胀一个相对布局,但是我无法根据上面的ImageView 包装文本内容。请帮忙解决一下。

我的相对布局代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background_gradient"
    android:orientation="vertical"
    android:paddingRight="5dp" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img1" />

    <TextView
        android:id="@+id/title_course"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/imageView1"
        android:layout_below="@+id/imageView1"
        android:background="#08298A"
        android:text="This is my text view in android example"
        android:textColor="#FFFFFF" />

</RelativeLayout>

我的自定义列表视图代码如下:我在线性布局 id my_linear 中膨胀了相对布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/margin_small" >

    <TextView
        android:id="@+id/title_curriculum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:paddingLeft="5dp" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="5dp"
        android:contentDescription="@string/app_name"
        android:paddingRight="5dp"
        android:src="@drawable/progress_bar" />
</RelativeLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background_gradient"
    android:layout_margin="@dimen/margin_small" >

    <ImageView
        android:id="@+id/course_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/app_name"
        android:src="@drawable/ic_info_scroller" />

    <HorizontalScrollView
        android:layout_marginLeft="5dp"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:scrollbars="none" >

        <LinearLayout
            android:id="@+id/my_linear"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal" >
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>

【问题讨论】:

  • 请提供您设置为背景的所需图像。

标签: android layout


【解决方案1】:

您可以尝试将 TextView 粘贴在其自己的 LinearLayout 中。

【讨论】:

  • 我无法得到你的答案
  • 将 TextView 包装在 中,宽度 = match_parent,高度为 wrap_content。
【解决方案2】:

在您的TextView XML 中将false 设置为android:singleLine,如下所示...

android:singleLine="false"

所以,更新的布局 XML 将是...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background_gradient"
    android:orientation="vertical"
    android:paddingRight="5dp" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img1" />

    <TextView
        android:id="@+id/title_course"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/imageView1"
        android:layout_below="@+id/imageView1"
        android:background="#08298A"
        android:singleLine="false"
        android:text="This is my text view in android example"
        android:textColor="#FFFFFF" />
</RelativeLayout>

【讨论】:

  • 我试过了,得到了相同的输出。我无法得到剩余的文字
  • 那么,问题是TextView 的全文没有显示,对吗?
  • 没错,我希望它换行并出现在下一行
  • 您应该添加一个示例图像来解释输出应该是什么样子。
【解决方案3】:

<ImageView
    android:id="@+id/img"
    android:layout_width="wrap_content"
    android:src="@android:drawable/gallery_thumb"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/img"
    android:layout_alignLeft="@+id/img"
    android:layout_alignRight="@+id/img"
    android:text="This dummy text here testttttttttt"
    android:textAppearance="?android:attr/textAppearanceLarge" />

【讨论】:

    【解决方案4】:
    <TextView
    android:id="@+id/title_course"
    android:layout_width="**match_parent**"
    android:layout_height="wrap_content"
    
    android:layout_alignParentLeft="true"
    
    android:layout_below="@+id/imageView1"
    android:background="#08298A"
    android:text="This is my text view in android example"
    android:textColor="#FFFFFF" />
    

    您将内容包装在宽度上,因此父宽度无关紧要。使用match_parent,它应该可以工作。我还删除了 parentBottom 和 alignRight,不确定它是否会起作用。

    【讨论】:

      【解决方案5】:

      我在TextView 中尝试了android:width="0dp",并且得到了所需的输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        相关资源
        最近更新 更多