我是android编程的初学者,我想知道如何制作如图所示的OneUi风格的导航。
这就是我到目前为止所做的。不幸的是,当我滚动它,它将完全崩溃,我无法得到它回来。
我使用了AppBarLayout的CoordinatorLayout,并遵循材料中的一些代码。但是它没有像我预期的那样工作。我希望应用程序栏在滚动时短,在顶部时高。
以下是我的XML布局代码:
<androidx.coordinatorlayout.widget.CoordinatorLayout
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="#F0F0F0"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="256dp">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleMarginStart="72dp"
app:expandedTitleMarginBottom="28dp"
app:layout_scrollFlags="scroll|snap">
<com.google.android.material.appbar.MaterialToolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="pin"
app:contentInsetStart="0dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="This is a text"
android:textSize="50dp"
/>
</RelativeLayout>
</com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false">
</androidx.cardview.widget.CardView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
对于您的用例。你需要改变的事情很少。
>
将AppBarLayout
下面的内容放在NestedScrollView
中,以滚动layout_behavior
。
放一些内容来模仿滚动效果。例如,具有巨大高度的文本视图。
将要折叠的内容放入一个折叠工具栏布局
中,当其高
或未折叠时,基本上可以显示这些内容。
把你的MaterialToolbar
作为AppBarLayout
的直接子元素
示例代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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="#F0F0F0"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleMarginBottom="28dp"
app:expandedTitleMarginStart="72dp"
app:layout_scrollFlags="scroll|snap">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="This is collapsing content"
android:textSize="32sp" />
</RelativeLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
<com.google.android.material.appbar.MaterialToolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentInsetStart="0dp"
app:layout_collapseMode="pin"
app:title="This is MaterialToolbar" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false">
<TextView
android:layout_width="match_parent"
android:layout_height="800dp"
android:text="Hello Test" />
</androidx.cardview.widget.CardView>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
输出:
未折叠:
倒塌:
在垂直导航中,如果存在多个分级,常常使用手风琴导航,它会以手风琴方式展开和折叠,来节约空间。 简单的说,手风琴导航就是垂直导航的层层嵌套,需要多少级,就嵌套多少层。这里就以两级导航为例,来介绍手风琴导航的基本制作方法。 为了方便控制手风琴导航的样式和行为,外层导航使用定义列表 dl、而内层使用无序列表 ul 来包裹导航中的链接元素: <dl class="accordion"> <dt>
序幕 这份指南目的于演示一整套 Rails 3 开发的风格惯例及最佳实践。这是一份与由现存社群所驱动的Ruby 编码风格指南互补的指南。 而本指南中测试 Rails 应用小节摆在开发 Rails 应用之后,因为我相信行为驱动开发 (BDD) 是最佳的软体开发之道。铭记在心吧。 Rails 是一个坚持己见的框架,而这也是一份坚持己见的指南。在我的心里,我坚信 RSpec 优于 Test::Unit,
导航窗格采用树状结构设计,可让你透过弹出式菜单快捷及方便地处理数据库和它们的对象。如果选项窗口中的“在导航窗格中的模式下显示对象”选项已勾选,所有数据库对象会显示在此窗格。若要连接到一个数据库或模式,简单地在此窗格中双击它。 在登录 Navicat Cloud 功能后,导航窗格会分为“Navicat Cloud”和“我的连接”两部分。 你可以点击树来对焦并输入搜索字符串来筛选树。若要只显示已打开的
导航窗格采用树状结构设计,可让你透过弹出式菜单快捷及方便地处理数据库和它们的对象。如果偏好设置窗口中的“在导航窗格中的模式下显示对象”选项已勾选,所有数据库对象会显示在此窗格。若要连接到一个数据库或模式,简单地在此窗格中双击它。 在登录 Navicat Cloud 功能后,导航窗格会分为“Navicat Cloud”和“我的连接”两部分。 你可以在“搜索”文本框输入搜索字符串来筛选树。若要只显示已
导航窗格采用树状结构设计,可让你透过弹出式菜单快捷及方便地处理数据库和它们的对象。如果选项窗口中的“在导航窗格中的模式下显示对象”选项已勾选,所有数据库对象会显示在此窗格。若要连接到一个数据库或模式,简单地在此窗格中双击它。 在登录 Navicat Cloud 功能后,导航窗格会分为“Navicat Cloud”和“我的连接”两部分。 你可以点击树来对焦并输入搜索字符串来筛选树。若要只显示已打开的
本文向大家介绍jQuery实现类似标签风格的导航菜单效果代码,包括了jQuery实现类似标签风格的导航菜单效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现类似标签风格的导航菜单效果代码。分享给大家供大家参考。具体如下: 这是一款基于jquery实现的类似TAB标签样式的网站导航菜单,引入了jquery,若运行代码后左上角提示错误,刷新页面即可正常。你可点击菜单查看到