如何添加占用手机布局全宽的TextView?

时间:2016-11-07 16:40:16

标签: android android-layout user-interface textview android-relativelayout

我正在开发一个我希望有进度条和文本视图的应用。事情是文本视图应该有不同的背景。当我使用android:layout_width="match_parent"时,它会在textview的两侧留下空间。当我们有白色背景时,它没关系,但是当我们放置不同的背景时,它看起来不太好。我怎样才能做到这一点?

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

When I add match_parent This is how I want the UI to be

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>

3 个答案:

答案 0 :(得分:1)

问题出在这里

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

textview匹配是父级。问题是,由于填充,父级不匹配整个父视图。 尝试删除填充,它应该工作。

答案 1 :(得分:1)

为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。

答案 2 :(得分:0)

删除相对布局的所有填充。如果你真的想要,你可以将它提供给进度条。

<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会给出您不想要的容器空间