Android L联系人应用程序如何折叠其工具栏?

普雷斯顿

我一直在尝试重现滚动列表视图时版本5.0上的“联系人”应用折叠工具栏的方式。

屏幕快照库,展示了所需的交互作用请注意,工具栏会分阶段折叠,其中显示搜索+最后一个联系人,淡入最后一个联系人,折叠最后一个联系人,折叠搜索,仅保留选项卡。

到目前为止,我在LinearLayout的recyclerview上方有一个工具栏,该工具栏用作操作栏,而不是独立的。

我无法弄清楚如何在recyclerview上拦截touch事件并使它收缩工具栏,然后将滚动事件返回给recyclerview。我试图将整个东西放到一个滚动视图中,但是随后recyclerview无法正确计算它的高度,并且不显示任何内容。我尝试在recyclerview上覆盖onscroll,发现它只会在滚动事件开始时通知我,并向我提供第一个可见的卡ID。

看起来不错但我终生无法工作的方式是:

getSupportActionBar().setHideOnContentScrollEnabled(true);

哪个返回:

 Caused by: java.lang.UnsupportedOperationException: Hide on content scroll is not supported in this action bar configuration.

使用传统的动作栏,在其下方放置工具栏并设置hideoncontentscrollenabled也不起作用,滚动从未触发动作栏上的hide方法。

-编辑-我能够使用传统的操作栏使hideOnContentScrollEnabled在列表视图上工作,但是其行为与通讯录应用不同。显然这不是他们使用的方法-当在列表视图上发生fling事件时,它只是在操作栏上触发.hide(),这与Contacts应用程序不同,后者与滚动事件一起拖动了工具栏。 - /编辑 -

因此,我放弃了该路线,并在cardview高度上设置fill_parent,并在工具栏上设置了一个折叠动画。但是,如何触发它,使其在触摸事件之后,然后将触摸事件返回给recyclerview?

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?android:attr/actionBarSize"
        android:background="@color/colorPrimary"
        />

    <fragment android:name="me.myapplication.FragmentTab"
          android:id="@+id/tab_fragment"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" />
</LinearLayout>

fragment_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:padding="8dp"
    android:background="#eeeeee"
    >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        />

</LinearLayout>

styles.xml

...
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...

MainActivity.java

Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);

// Disable the logo in the actionbar, as per material guidelines
toolbar.getMenu().clear();
toolbar.setTitle("My toolbar");
setSupportActionBar(toolbar);
愚蠢的新秀

我还没有研究过源代码,但是这个家伙似乎使生活变得轻松而富有启发性。

https://github.com/ksoichiro/Android-ObservableScrollView

编辑

谷歌刚刚发布了Android设计库请看一下它,它包含折叠工具栏的所有效果以及更多其他功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android通过应用程序提供/同步联系人

来自分类Dev

使用android的联系人应用程序

来自分类Dev

如何使工具栏动画像棒棒糖中的“联系人”应用程序

来自分类Dev

Android:如何知道哪些联系人已经安装了该应用程序?

来自分类Dev

Android-如何像在本机应用程序中检索联系人列表?

来自分类Dev

Android:如何知道哪些联系人已经安装了该应用程序?

来自分类Dev

从Android 6.0中的“联系人”中选择联系人后,应用程序崩溃了

来自分类Dev

工具栏未显示在android应用程序中

来自分类Dev

Android 联系人列表 - 如何将我的应用程序创建的联系人与手机的其余部分分开?

来自分类Dev

如何在Android的“应用程序主题”中指定工具栏主题?

来自分类Dev

如何从我的Android应用程序中删除工具栏?

来自分类Dev

如何在用户的Android手机的联系人列表中添加我的应用程序图标

来自分类Dev

Android上的“后退”按钮可保存联系人,而无需返回应用程序

来自分类Dev

以编程方式将Android应用程序与联系人/电话簿链接

来自分类Dev

Android检查联系人是否已在应用程序中注册

来自分类Dev

在Xamarin Forms应用程序中获取Android联系人

来自分类Dev

如何像在Google Maps应用程序中那样将Android工具栏菜单/图标向左对齐?

来自分类Dev

我可以在 Android 上启动联系人应用程序并实际获取所选联系人的手机号码吗?

来自分类Dev

如何在Android中删除折叠工具栏

来自分类Dev

Android ActionBar /工具栏消失在我的应用程序中

来自分类Dev

Java android studio应用程序上的工具栏错误

来自分类Dev

Android应用程序名称显示为每个活动顶部的水平工具栏

来自分类Dev

为Android应用程序创建类似viber iOS的工具栏

来自分类Dev

如何在使用HTML5构建的Android本机应用程序中将选定的联系人加载到文本框中

来自分类Dev

将我的联系人与quickblox同步,并为Android中的自定义聊天应用程序检索这些用户

来自分类Dev

通过Parse检索我的Android应用程序中与我的电话联系人列表匹配的用户列表

来自分类Dev

Android联系人应用布局

来自分类Dev

Android:折叠线性布局而不是折叠工具栏

来自分类Dev

Android中如何获取联系人并保存到数据库工具?

Related 相关文章

  1. 1

    Android通过应用程序提供/同步联系人

  2. 2

    使用android的联系人应用程序

  3. 3

    如何使工具栏动画像棒棒糖中的“联系人”应用程序

  4. 4

    Android:如何知道哪些联系人已经安装了该应用程序?

  5. 5

    Android-如何像在本机应用程序中检索联系人列表?

  6. 6

    Android:如何知道哪些联系人已经安装了该应用程序?

  7. 7

    从Android 6.0中的“联系人”中选择联系人后,应用程序崩溃了

  8. 8

    工具栏未显示在android应用程序中

  9. 9

    Android 联系人列表 - 如何将我的应用程序创建的联系人与手机的其余部分分开?

  10. 10

    如何在Android的“应用程序主题”中指定工具栏主题?

  11. 11

    如何从我的Android应用程序中删除工具栏?

  12. 12

    如何在用户的Android手机的联系人列表中添加我的应用程序图标

  13. 13

    Android上的“后退”按钮可保存联系人,而无需返回应用程序

  14. 14

    以编程方式将Android应用程序与联系人/电话簿链接

  15. 15

    Android检查联系人是否已在应用程序中注册

  16. 16

    在Xamarin Forms应用程序中获取Android联系人

  17. 17

    如何像在Google Maps应用程序中那样将Android工具栏菜单/图标向左对齐?

  18. 18

    我可以在 Android 上启动联系人应用程序并实际获取所选联系人的手机号码吗?

  19. 19

    如何在Android中删除折叠工具栏

  20. 20

    Android ActionBar /工具栏消失在我的应用程序中

  21. 21

    Java android studio应用程序上的工具栏错误

  22. 22

    Android应用程序名称显示为每个活动顶部的水平工具栏

  23. 23

    为Android应用程序创建类似viber iOS的工具栏

  24. 24

    如何在使用HTML5构建的Android本机应用程序中将选定的联系人加载到文本框中

  25. 25

    将我的联系人与quickblox同步,并为Android中的自定义聊天应用程序检索这些用户

  26. 26

    通过Parse检索我的Android应用程序中与我的电话联系人列表匹配的用户列表

  27. 27

    Android联系人应用布局

  28. 28

    Android:折叠线性布局而不是折叠工具栏

  29. 29

    Android中如何获取联系人并保存到数据库工具?

热门标签

归档