我创建了一个视图来显示包含以下内容的错误:
说明文本必须完整显示:显示3行。 “重试” 按钮具有固定的高度,也必须可见。 图像必须根据可用空间进行调整。
目前,该文本尚未完全显示:仅可见两行。图片的大小似乎还不够缩小...
此视图基于RelativeLayout
,看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@color/color_white">
<ImageView
android:id="@+id/ErrorImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:layout_marginTop="@dimen/cards_error_image_margin_top"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/ErrorTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/ErrorImageView"
android:layout_marginHorizontal="@dimen/cards_error_text_margin_horizontal"
android:layout_marginTop="@dimen/cards_error_text_margin_top"
style="@style/CustomFont30Marine"
android:gravity="center_horizontal"/>
<Button
android:id="@+id/RetryButton"
android:layout_width="@dimen/cards_error_retry_button_width"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/cards_error_retry_button_margin_bottom"
style="@style/WhiteCustomButton"/>
</RelativeLayout>
有没有一种方法可以通过设计器实现?还是我需要以编程方式调整图像大小?
预期结果如下:
实际结果如下:
答案 0 :(得分:0)
已尝试按照您的要求复制设计。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
>
<ImageView
android:id="@+id/ErrorImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:layout_above="@id/ErrorTextView"
android:background="@mipmap/ic_launcher"
android:layout_marginTop="10dp"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/ErrorTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:lines="3"
android:layout_centerHorizontal="true"
android:layout_above="@id/RetryButton"
android:layout_marginHorizontal="10dp"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"/>
<Button
android:id="@+id/RetryButton"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
/>
</RelativeLayout>
希望这会有所帮助。
答案 1 :(得分:0)
尝试
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@color/color_white"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/ErrorImageView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/cards_error_image_margin_top"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/ErrorTextView"
style="@style/CustomFont30Marine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/cards_error_text_margin_top"
android:gravity="center_horizontal" />
<Button
android:id="@+id/RetryButton"
style="@style/WhiteCustomButton"
android:layout_width="@dimen/cards_error_retry_button_width"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/cards_error_retry_button_margin_bottom" />
</LinearLayout>