textview不适合固定大小的高度Relativelayout

时间:2017-12-21 05:49:37

标签: android

<RelativeLayout android:layout_width="wrap_content"
    android:layout_height="270dp">

    <!-- Header aligned to top -->
    <RelativeLayout
        android:id="@+id/header1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="#de7925"
        android:padding="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:textColor="@color/colorWhite"
            android:textStyle="bold"
            android:text="Personal Mobile" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:background="@drawable/ic_backspace" />
    </RelativeLayout>

    <!-- Footer aligned to bottom -->
    <RelativeLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#000000"
        android:gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:textColor="@color/colorWhite"
            android:text="QR CODE"/>    

        <ImageView
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_capture" />

        <TextView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="SCAN CARD"
            android:textColor="@color/colorWhite" />
    </RelativeLayout>

    <!-- Content below header and above footer -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/footer"
        android:layout_below="@id/header1"
        android:gravity="center">

        <ImageView
            android:id="@+id/barcode"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:padding="10dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/qrcode" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/barcode"
            android:text="Exchange"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:textColor="#ffffff"
            android:padding="10dp"
            android:background="@color/colorCallGradientStart"
            android:textSize="20sp" />            

    </RelativeLayout>        
</RelativeLayout>

这是我XML; RelativeLayout的高度为270 dp。我必须修复RelativeLayout内的所有内容。

我如何适应TextView内部,即修复相对布局的大小。

我当前的屏幕:

current screen appearance

这是我预期的屏幕:

Expected appearance

QrCode图像视图和textview不合适。我想要适合文本,所以你看不到文本交换。

5 个答案:

答案 0 :(得分:1)

试试这个

您的图片尺寸太大,而且您还提供了填充到textview,这就是您的文字没有显示的原因。 我已经更改了您的具体代码。

<!-- Content below header and above footer -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/footer"
        android:layout_below="@id/header1"
        android:gravity="center">

        <ImageView
            android:id="@+id/barcode"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:padding="10dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_launcher_background" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/barcode"
            android:text="Exchange"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:textColor="#ffffff"
            android:background="@color/colorDarkGolden"
            android:textSize="20sp" />
    </RelativeLayout>

enter image description here

答案 1 :(得分:0)

试试这个

删除xml

中的填充
android:padding="10dp"

答案 2 :(得分:0)

删除文本视图中的Padding=10dp,但是如果要保留它。将您的RelativeLayout更改为LinearLayout,您的布局就会很好。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/footer"
    android:layout_below="@id/header1"
    android:orientation="vertical"
    android:gravity="center">

    <ImageView
        android:id="@+id/barcode"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:padding="10dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/qrcode" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/barcode"
        android:text="Exchange"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textColor="#ffffff"
        android:padding="10dp"
        android:background="@color/colorCallGradientStart"
        android:textSize="20sp" />



</LinearLayout>

答案 3 :(得分:0)

删除文本填充并使文字宽度为match_parent,删除RelativeLayout中的重力和方向看看

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/footer"
    android:layout_below="@id/header1">

    <ImageView
        android:id="@+id/barcode"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:padding="10dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/qrcode" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/barcode"
        android:text="Exchange"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textColor="#ffffff"    
        android:background="@color/colorCallGradientStart"
        android:textSize="20sp" />

</RelativeLayout>

快乐的编码!!

答案 4 :(得分:0)

你可以这样做 - :

<RelativeLayout android:layout_width="wrap_content"
    android:layout_height="290dp"
    xmlns:android="http://schemas.android.com/apk/res/android">


    <!-- Header aligned to top -->
    <RelativeLayout
        android:id="@+id/header1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="#de7925"
        android:padding="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:textColor="@color/colorWhite"
            android:textStyle="bold"
            android:text="Personal Mobile" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:background="@drawable/ic_backspace" />
    </RelativeLayout>

    <!-- Footer aligned to bottom -->
    <RelativeLayout

        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#000000"
        android:gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:textColor="@color/colorWhite"
            android:text="QR CODE"/>


        <ImageView
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:gravity="center"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/ic_capture" />

        <TextView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="SCAN CARD"
            android:textColor="@color/colorWhite" />
    </RelativeLayout>

    <!-- Content below header and above footer -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/footer"
        android:layout_below="@id/header1"
        android:gravity="center">

        <ImageView
            android:id="@+id/barcode"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:padding="10dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/qrcode" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/barcode"
            android:text="Exchange"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:padding="10dp"
            android:textSize="20sp" />



    </RelativeLayout>


</RelativeLayout>

而不是 - :

android:layout_height="270dp"

到 - :

android:layout_height="290dp"

高度不值得填补所有thimgs所以改变这个并且它将起作用