如何添加占据 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
我正在开发一个应用程序,我希望它有一个进度条和一个文本视图。问题是文本视图应该有不同的背景。当我使用 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