如何添加占据 phone 布局的整个宽度的 TextView?

How to add a TextView that occupies the full width of the phone's layout?

我正在开发一个应用程序,我希望它有一个进度条和一个文本视图。问题是文本视图应该有不同的背景。当我使用 android:layout_width="match_parent" 时,它会在文本视图的两侧留下 space。当我们有一个白色背景时,还可以,但是当我们放置不同的背景时,它看起来就不太好了。我怎样才能做到这一点?

简而言之,我在输入 match_parent 时得到以下视图(第一张图片),但我希望页面看起来像第二张图片中的那个。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="senti.com.freelaneprogress.MainActivity">

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        android:max="100"
        android:progress="40"
        android:rotation="270"
        android:progressDrawable="@drawable/circular"/>

    <TextView
        android:id="@+id/eta"
        android:background="#00000000"
        android:layout_height="100dp"
        android:layout_width="150dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="1.3in"/>

    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_marginTop="2in"
        android:layout_centerHorizontal="true"/>

    <TextView
        android:background="@drawable/textviewbg"
        android:layout_width="match_parent"
        android:layout_height="30pt"
        android:contextClickable="false"
        android:layout_alignParentBottom="true"
        android:id="@+id/textView" />
</RelativeLayout>

问题就在这里

android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"

匹配的文本视图是父视图。问题是,由于填充,父视图与整个父视图不匹配。 尝试删除填充,它应该可以工作。

将 RelativeLayout 视图的 paddingLeft、paddingRight 和 paddingBottom 设置为 0dp。换句话说,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="senti.com.freelaneprogress.MainActivity">


    ...
    ...
</RelativeLayout>

这是达到预期结果所需的最低要求。但是如果你想要绝对,你也可以将RelativeLayout的paddingTop设置为0dp。

移除相关布局的所有内边距。如果你真的想要你可以把它给progressbar。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="senti.com.freelaneprogress.MainActivity">

将 padding 设置为 relative 会给出您不需要的容器 space