【问题标题】:Linear Layout:How to fill the whole width of screen?线性布局:如何填满屏幕的整个宽度?
【发布时间】:2016-08-12 00:15:40
【问题描述】:

我正在关注布局文件,它在相对布局内创建线性布局。

<?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="fill_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="#eeeeee">

<LinearLayout            // I want this to fill the whole width of screen.
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="50px"
    android:background="#666666"


    >

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/newEvent"
        android:hint="Enter the Name of Event"
        android:layout_below="@+id/textView2"
        android:layout_alignParentStart="true" />


    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select Location"
    android:id="@+id/pickerButton"
    android:layout_alignTop="@+id/newEvent"
    android:layout_toEndOf="@+id/newEvent" />



</LinearLayout>

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Set Remainder"
    android:id="@+id/submit"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="View All"
    android:id="@+id/view"
    android:layout_below="@+id/submit"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="68dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Your Location Will Appear Here"
    android:id="@+id/textView4"

    android:layout_above="@+id/submit"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="48dp" />

</RelativeLayout>

使用此代码,我得到以下布局:

但是灰色(线性布局)的左侧,右侧和顶部都有空格。我不想要这些空间。我想用灰色填充整个宽度。我应该在我的xml 中进行哪些更改才能实现此目的?

提前致谢!

编辑:

感谢您的回答。但是解决这个问题后,我的文本框和按钮在灰色框的底部,如下图所示:

为此,我已经尝试过"android:gravity="center_horizontal""android:gravity="center_vertical""android:gravity="center"。我也试过padding-bottom

但这不起作用。

【问题讨论】:

  • 从父 RelativeLayout 中删除填充属性,同时为您的 LinearLayout 设置方向
  • 没问题 - 检查视图层次结构总是需要支付这样的问题
  • @MarkKeen 查看编辑。
  • 我相信你应该阅读这篇关于重力的文章。否则,如果您想居中,请在要居中的视图周围使用 RelativeLayout。 stackoverflow.com/questions/3482742/…

标签: android xml android-layout android-linearlayout


【解决方案1】:

删除

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

来自父 RelativeLayout 的行

<LinearLayout            
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="50px"
    android:background="#666666"  
    android:orientation="horizontal"
    android:gravity="center_vertical"
    >

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/newEvent"
        android:hint="Enter the Name of Event"
        android:layout_gravity="center_vertical" />


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Select Location"
        android:id="@+id/pickerButton"
        android:layout_gravity="center_vertical" />



</LinearLayout>

【讨论】:

  • 谢谢!现在我的按钮和文本框位于灰色框的底部。有什么办法可以居中对齐吗?
  • android:gravity="center_horizontal"android:gravity="center" 设置为您的LinearLayout
  • 我觉得应该是center_vertical
  • 您可以根据需要设置垂直、水平或同时设置。 :)
  • 然后你可以尝试在你的文本框和按钮上使用android:layout_gravity="center_vertical
【解决方案2】:

将相对布局的顶部更改为:

<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=".MainActivity"
    android:background="#eeeeee">

编辑:

像这样改变你的线性布局:

<RelativeLayout          
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="50px"
    android:background="#666666">

    <LinearLayout          
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="horizontal">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/newEvent"
            android:hint="Enter the Name of Event" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Select Location"
            android:id="@+id/pickerButton" />

    </LinearLayout>
</RelativeLayout>

【讨论】:

  • 谢谢!现在我的按钮和文本框位于灰色框的底部。有什么办法可以居中对齐吗?
  • @14bce109 我的答案更新了,看看吧
  • 不工作。在我编辑的问题中查看确切的问题
  • 您是否将重力设置为垂直?
  • @14bce109 尝试答案中给出的新解决方案。用给定的代码替换您的 LinearLayout
【解决方案3】:

在 LinearLayout 中,您使用的是 android:paddingTop="50px"。而是使用每个 25 像素的顶部和底部填充。

【讨论】:

  • 只是复制了我在 cmets 中提到的内容
猜你喜欢
  • 2017-01-25
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
相关资源
最近更新 更多