在页面底部添加结帐按钮
Add checkout button at bottom of page
我正在尝试在页面底部的 RecyclerView
下显示一个“结帐”按钮。
我的 XML 文件如下所示:
<androidx.drawerlayout.widget.DrawerLayout
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_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light"
android:id="@+id/drawer_layout"
tools:context=".Cart">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/main_toolbar"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Cart"
android:gravity="center"
android:fontFamily="@font/poppinsbold"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="555dp"
android:layout_marginBottom="500px"/>
<Button
android:id="@+id/checkout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Checkout" />
</LinearLayout>
<RelativeLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white">
<include
layout="@layout/main_nav_drawer"/>
</RelativeLayout>
</androidx.drawerlayout.widget.DrawerLayout>
不幸的是,当我应用更改时,产品看起来不错,但按钮不显示。
如何让它显示出来?
非常感谢。
问题出在 RecyclerView 的 layout_marginBottom 属性上。 500 像素?!你在跟我开玩笑吗? 8dp 就够了。
潜在选项:
- 结合 ConstraintLayout,根据屏幕分辨率动态设置边距。这里有些例子:
- 根据您想要的比例动态设置边距。这是一个示例:
- 移除 RecyclerView 的底部边距。
- 考虑更新 RecyclerView 的底部边距,将其替换为 小得多 的内容。
你需要
- 删除
RecyclerView
的底部填充
- 不指定
RecyclerView
的高度,而是使用RecyclerView
的权重来展开直到按钮
- 从
Button
中删除 android:layout_alignParentBottom="true"
,因为它与 LinearLayout
无关
应用:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:fontFamily="@font/poppinsbold"
android:gravity="center"
android:text="@string/Cart"
android:textSize="20dp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp" />
<Button
android:id="@+id/checkout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Checkout" />
</LinearLayout>
<RelativeLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white">
<include layout="@layout/main_nav_drawer" />
</RelativeLayout>
</androidx.drawerlayout.widget.DrawerLayout>
我正在尝试在页面底部的 RecyclerView
下显示一个“结帐”按钮。
我的 XML 文件如下所示:
<androidx.drawerlayout.widget.DrawerLayout
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_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light"
android:id="@+id/drawer_layout"
tools:context=".Cart">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/main_toolbar"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Cart"
android:gravity="center"
android:fontFamily="@font/poppinsbold"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="555dp"
android:layout_marginBottom="500px"/>
<Button
android:id="@+id/checkout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Checkout" />
</LinearLayout>
<RelativeLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white">
<include
layout="@layout/main_nav_drawer"/>
</RelativeLayout>
</androidx.drawerlayout.widget.DrawerLayout>
不幸的是,当我应用更改时,产品看起来不错,但按钮不显示。
如何让它显示出来?
非常感谢。
问题出在 RecyclerView 的 layout_marginBottom 属性上。 500 像素?!你在跟我开玩笑吗? 8dp 就够了。
潜在选项:
- 结合 ConstraintLayout,根据屏幕分辨率动态设置边距。这里有些例子:
- 根据您想要的比例动态设置边距。这是一个示例:
- 移除 RecyclerView 的底部边距。
- 考虑更新 RecyclerView 的底部边距,将其替换为 小得多 的内容。
你需要
- 删除
RecyclerView
的底部填充
- 不指定
RecyclerView
的高度,而是使用RecyclerView
的权重来展开直到按钮 - 从
Button
中删除android:layout_alignParentBottom="true"
,因为它与LinearLayout
无关
应用:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:fontFamily="@font/poppinsbold"
android:gravity="center"
android:text="@string/Cart"
android:textSize="20dp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp" />
<Button
android:id="@+id/checkout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Checkout" />
</LinearLayout>
<RelativeLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white">
<include layout="@layout/main_nav_drawer" />
</RelativeLayout>
</androidx.drawerlayout.widget.DrawerLayout>