我希望将循环器视图行作为给定的数字。基本上,图像视图将具有固定的尺寸。两个文本视图应覆盖整个空间,但不应将图像视图移出屏幕。也不应该裁剪它。 请忽略填充和边距。除了图像视图和两个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中的文本而变化。我不要那个。我想要修复尺寸。
我可以将整个事物保留在相对布局中,但是我无法在两个文本视图和图像视图之间保留边距。
答案 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"/>