Android Layout proplem

时间:2015-07-02 20:42:01

标签: android

我的布局包含一个图像和3个文本字段

我试图将图片右对齐,文字字段向左对齐但是我已经失败

我已经

android:layout_gravity="right"用于图片和留待文字,但它不起作用我在重力中使用endstart但没有成功

这是布局代码:

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

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="2dp"
        android:orientation="vertical"
        android:background="@drawable/card_background">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

            <ImageView
            android:id="@+id/listthumb"
            android:layout_width="80dp"
            android:layout_height="50dp"
            android:layout_gravity="center_vertical"
            android:contentDescription="Rss video thumbnail"
            android:src="@drawable/ic_launcher" />

            <TextView
            android:id="@+id/listtitle"
            style="@style/listTitle"
            android:maxLines="3"/>

        </LinearLayout>

            <TextView
            android:id="@+id/shortdescription"
            android:layout_width="wrap_content"
            android:ellipsize="end"
            android:maxLines="2" 
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:layout_height="wrap_content"/>

            <TextView
            android:id="@+id/listpubdate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="11dp"/>

</LinearLayout>

</FrameLayout>

5 个答案:

答案 0 :(得分:0)

尝试使用<RelativeLayout>代替<LinearLayout>

使用RelativeLayout,您可以根据另一个小部件的位置放置小部件

Here相对布局说明

答案 1 :(得分:0)

希望这会有所帮助,我没有时间去测试......

一个线性布局应该有垂直方向,并包含3个文本字段。

一个线性布局应该具有水平方向,并包含上述线性布局和图像。

答案 2 :(得分:0)

要将两个视图推到屏幕边缘,您还可以为每个视图提供左/右边距,然后在它们之间放置一个权重= 1的空白视图。

答案 3 :(得分:0)

请详细了解layouts work on Android以及您可以使用的不同类型。 LinearLayout将一个接一个地水平或垂直堆叠包含的视图。 FrameLayout只是一个容器,其中的项目必须自己定位。 RelativeLayout允许您使用对其他视图的相对引用来定位视图(在您的情况下,您可以定位ImageView,然后相对于ImageView所在的3个TextView)。

如果你可以使用LinearLayout而不是RelativeLayout,你应该这样做,因为RelativeLayout总是较慢,因为它必须在渲染之前执行两次传递,因为它需要测量每个视图,然后还要根据它执行布局。您可能正在寻找类似(伪代码)的东西:

<LinearLayout orientation=horizontal>
    <LinearLayout orientation=vertical>
        <TextView />
        <TextView />
        <TextView />
    </LinearLayout>
    <ImageView />
</LinearLayout>

答案 4 :(得分:0)

您没有很好地描述您的问题。检查以下代码是否有效。

您只是忘记在包含一个文本视图和图像视图的线性布局中添加方向。

为线性布局添加方向。