如何设置此视图?

时间:2017-07-25 20:28:20

标签: java android xml android-layout

我希望将循环器视图行作为给定的数字。基本上,图像视图将具有固定的尺寸。两个文本视图应覆盖整个空间,但不应将图像视图移出屏幕。也不应该裁剪它。 My desired layout 请忽略填充和边距。除了图像视图和两个textview之间会有一个边距。

我尝试过:

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

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.8">

        <TextView
            android:id="@+id/tv1"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:layout_alignParentStart="true"
            android:layout_below="@id/tv1"
            android:id="@+id/tv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="2"
            android:ellipsize="end"/>

    </RelativeLayout>

    <ImageView
        android:id="@+id/img"
        android:layout_weight="0.2"
        android:layout_width="85dp"
        android:layout_height="50dp"
        android:layout_marginStart="12dp"
        android:layout_centerVertical="true"
        android:scaleType="centerCrop"/>
</LinearLayout>

问题在于图像视图的尺寸随着textview中的文本而变化。我不要那个。我想要修复尺寸。

我可以将整个事物保留在相对布局中,但是我无法在两个文本视图和图像视图之间保留边距。

4 个答案:

答案 0 :(得分:2)

您的RelativeLayout应为:

data

json

中删除<RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1">

这将拉伸RelativeLayout以适应空间并使android:layout_weight保持相同的大小。

答案 1 :(得分:0)

您可以手动为其设置一个大小,而不是根据文本视图的数量进行更改,而不是在文本视图上使用wrap_content功能。

android:layout_width="300dp"
android:layout_height="200dp"

您可能需要使用的实际尺寸才能完全按照您的意愿获得。

答案 2 :(得分:0)

我认为这是你正在寻找的东西。屏幕尺寸独立布局。唯一固定的尺寸是ImageView。我添加了背景,因此您可以在Android Studio预览中立即查看。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignBottom="@id/img"
        android:layout_toLeftOf="@id/img"
        android:layout_toStartOf="@id/img"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tv1"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="#acacac"
            android:gravity="center"
            tools:text="TextView1"
            />

        <TextView
            android:id="@+id/tv2"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="#d49e9e"
            android:ellipsize="end"
            android:gravity="center"
            android:maxLines="2"
            tools:text="TextView2"/>
    </LinearLayout>

    <ImageView
        android:id="@+id/img"
        android:layout_width="100dp"
        android:layout_height="180dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#90f760"
        android:scaleType="centerCrop"/>

</RelativeLayout>

答案 3 :(得分:-1)

这应该会给你带来理想的效果:

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

<TextView
    android:id="@+id/tv1"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/img"
    android:layout_toStartOf="@+id/img"
    />
<TextView
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/tv1"
    android:layout_alignEnd="@+id/tv1"
    android:layout_below="@id/tv1"
    android:id="@+id/tv2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="2"
    android:ellipsize="end"/>
<ImageView
    android:id="@+id/img"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_marginStart="12dp"
    android:layout_marginLeft="12dp"
    android:layout_centerVertical="true"
    android:scaleType="centerCrop"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"/>