如何在Android Studio的活动底部制作Android xml Linearlayout?

Posted

技术标签:

【中文标题】如何在Android Studio的活动底部制作Android xml Linearlayout?【英文标题】:How to make Android xml Linerlayout at the bottom of the activity in Android Studio? 【发布时间】:2020-08-17 07:53:49 【问题描述】:

如何在页面底部的 android Studio 中制作 LinearLayout。下面代码的结果

我希望突出显示的深色布局位于页面底部。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainPage"
    android:orientation="vertical"
    android:background="#ffffff">

<Button
        android:id="@+id/taptoscan"
        android:layout_marginTop="40dp"
        android:layout_marginBottom="10dp"
        android:layout_
        android:layout_
        android:background="@drawable/barcode"
        android:layout_gravity="center"/>

    <TextView
        android:layout_
        android:layout_
        android:text="Tap to Scan"
        android:fontFamily="@font/antic"
        android:layout_gravity="center"
        android:textSize="18sp"/>

    <!--here is the layout i want to put at the bottom of the page-->
    <LinearLayout
        android:layout_
        android:layout_
        android:background="@color/colorPrimaryDark"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:gravity="bottom">

        <RelativeLayout
            android:layout_
            android:layout_>
    </RelativeLayout>
</LinearLayout>

在上面的代码中,我尝试了下面的,但没有成功。

android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:gravity="bottom"

【问题讨论】:

使用外层布局作为相对布局 @Ticherhaz 我也试过了,它不起作用 【参考方案1】:

你可以在外面使用RelativeLayout。像这样,然后再添加一个新的 LinearLayout。

<?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_
    android:layout_
    android:background="#ffffff"
    android:orientation="vertical"
    tools:context=".MainPage">

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <Button
            android:id="@+id/taptoscan"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            android:layout_marginBottom="10dp"
            android:background="@drawable/barcode" />

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:fontFamily="@font/antic"
            android:text="Tap to Scan"
            android:textSize="18sp" />
    </LinearLayout>

    <!--here is the layout i want to put at the bottom of the page-->
    <LinearLayout
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:background="@color/colorPrimaryDark"
        android:gravity="bottom"
        android:orientation="horizontal">

    <RelativeLayout
        android:layout_
        android:layout_ />
    </LinearLayout>
</RelativeLayout>

【讨论】:

【参考方案2】:

使用框架布局作为基本布局以最好的方式做到这一点,它肯定会起作用 只需在您想要的 LinearLayout 中使用 layout_gravity="bottom" 和 就像这样:

  <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:background="#ffffff"
    android:orientation="vertical"
    tools:context=".MainPage">

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <Button
            android:id="@+id/taptoscan"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            android:layout_marginBottom="10dp"
            android:background="@drawable/barcode" />

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:fontFamily="@font/antic"
            android:text="Tap to Scan"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_gravity="bottom"
        android:background="@color/colorPrimaryDark"
        android:orientation="horizontal">

    <RelativeLayout
        android:layout_
        android:layout_ />
    </LinearLayout>

</FrameLayout>

【讨论】:

【参考方案3】:

以下方法将帮助您实现零重叠的设计规范。基本上,有四个关键步骤:

    将根布局更改为 RelativeLayout

    RelativeLayout 中,添加一个 LinearLayout,其中包含您的 Button 和您的 TextView

    在同一个 RelativeLayout 中,添加您要固定到屏幕底部的 LinearLayout

    确保您使用 android:layout_above="" 属性将第一个 LinearLayout 设置在第二个之上。

现在,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_
  android:layout_
  tools:context=".MainPage">


  <LinearLayout
      android:layout_
      android:layout_
      android:orientation="vertical"
      android:background="#ffffff"
      android:layout_above="@+id/bottomView">


      <Button
          android:id="@+id/taptoscan"
          android:layout_marginTop="40dp"
          android:layout_marginBottom="10dp"
          android:layout_
          android:layout_
          android:background="@drawable/barcode"
          android:layout_gravity="center"/>

      <TextView
          android:layout_
          android:layout_
          android:text="Tap to Scan"
          android:fontFamily="@font/antic"
          android:layout_gravity="center"
          android:textSize="18sp"/>

  </LinearLayout>

  <!--here is the layout i want to put at the bottom of the page-->
  <LinearLayout
      android:layout_
      android:layout_
      android:id="@+id/bottomView"
      android:background="@color/colorPrimaryDark"
      android:orientation="horizontal"
      android:layout_alignParentBottom="true"
      android:layout_gravity="bottom"
      android:gravity="bottom">

      <RelativeLayout
          android:layout_
          android:layout_>
      </RelativeLayout>

  </LinearLayout>

</RelativeLayout>

我希望这会有所帮助。

【讨论】:

以上是关于如何在Android Studio的活动底部制作Android xml Linearlayout?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android studio 1.4的默认情况下从右侧制作导航菜单

滚动视图顶部的静态按钮 android studio

如何根据 android studio 中的 listview 项目点击更改活动图像和文本? java 或 kotlin

具有滚动活动的Android Studio [关闭]

如何从列表视图中从 sqlite 检索数据单击并查看不同的活动 android studio

自己的自定义图标未显示在底部导航栏android studio中