我想实现一个活动的底板,同时用户可以使用父视图和元素.当用户想要将焦点放在最下面的工作表上时,向上滑动工作表以扩展到全尺寸.我应该使用哪个库或视图?可以使用本机类吗? 用户界面将类似于谷歌 map 应用程序:

enter image description here

推荐答案

简单地说,你可以使用Material-Design个图书馆.Standard Bottom Sheet就是你想要的.以下是一个小的用户界面示例: *请注意,它必须在CoordinatorLayout

<androidx.coordinatorlayout.widget.CoordinatorLayout
...>
<FrameLayout
  android:id="@+id/standard_bottom_sheet"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  style="?attr/bottomSheetStyle"
  app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">

<!-- Bottom sheet contents. -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title"
.../>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/supporting_text"
.../>

<Button
android:id="@+id/bottomsheet_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action"
.../>

并且您必须设置Peek Height并设置其行为,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <style name="Base.Theme.App" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="bottomSheetStyle">@style/StandardBottomSheet</item>
  </style>

  <style name="StandardBottomSheet">
    <item name="backgroundTint">@android:color/white</item>
    <item name="android:elevation">8dp</item>
    <item name="elevation">8dp</item>
    <item name="behavior_hideable">true</item>
    <item name="behavior_draggable">true</item>
    <item name="behavior_skipCollapsed">false</item>
    <item name="behavior_fitToContents">true</item>
    <item name="behavior_peekHeight">176dp</item>
    <item name="android:windowSoftInputMode">stateAlwaysHidden</item>
  </style>
</resources>

Android相关问答推荐

房间数据库迁移未正确处理:原因:java.lang. IllegalState异常:

如何将文本相对于喷气背包中的图标垂直居中?

修改参数应该应用于哪些子元素?

编写视觉转型

CameraX与jetpack组成屏幕逻辑

无法理解Kotlin Coroutines and Flows中的J.C.编程行为

房间DB:UPSERT返回什么?

react 本机生成失败,出现异常.错误:无法确定';<;宏/>;的类型

如何修复Google Play市场中有关已删除广告库的错误消息?

如何解决Gradle构建错误:java.lang.NoSuchMethodError

为什么我在 android 中使用 TabLayout 时无法启动我的 Activity?

Android Studio 在 list 文件中已经声明了活动类,但仍出现无法找到明确的活动类的错误

当父布局的背景为浅色时,Android ProgressBar 背景 colored颜色 变为灰色

是否可以按照干净的体系 struct 将活动实例传递给视图模型

在 react native 中设置 react-native-paper 组件的样式

前台服务通知需要几秒钟才能显示

Android 自动分页如何与 media3 配合使用?

协程是否在 if 条件下保持秩序?

如何将新的 ComponentActivity 与 ViewBinding 和其他旧的 AppCompatActivity 组件一起使用

(Android) 如何在一对多关系中将子 ID 与父级匹配