Android之可折叠Toolbar的实现

Android中动态收缩与展开的Toolbar实现指南 在现代的Android应用界面设计中,可收缩和展开的Toolbar已经成为一种流行趋势,它不仅提高了界面的利用效率,还增强了用户体验。本章将引导您了解如何通过使用AppBarLayout和CollapsingToolbarLayout实现一个动态变化的Toolbar。我们将从基础概念入手,逐步深入探讨XML布局配置、Java代码设置、属性详解、交互状态控制、动态效果实现、样式自定义以及综合实践和问题解决等关键环节。通过本章,您可以构建出一个美观、响应迅速且功能完善的收缩展开Toolbar。 阅读详情


先介绍Android 5.X之后出现的Design meterial的新控件使用design包下的控件必须先导包  

  compile 'com.android.support:design:24.0.0'

CoordinatorLayout作为“super-powered FrameLayout”本质是个帧布局FrameLayout

基本实现两个功能: 
1、作为顶层布局;   其子控件可以通过layout_gravity控制自身位置
2、调度协调子布局.

CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局
的形式产生动画效果。CoordinatorLayout通过设置子View的Behaviors来调
度子View。在CoordinatorLayout的子view中有需要滑动的view时候可以必须设置
app:layout_behavior="@string/appbar_scrolling_view_behavior"来实现滑动效果,这个behavior是系统内置的类,如果
还需要实现自定义的效果可以自定义behavior类

AppBarLayout就是一个垂直的线性布局,该布局具有很多材料设计的特性,尤其是滚动特性.

如果子视图想要实现滚动行为,可以通过setScrollFlags(int)方法或者在xml中设置app:layout_scrollFlags.属性.

AppBarLayout应该被作为CoordinatorLayout的一个子视图来使用,如果在别的ViewGroup中来使用的话,可能AppBarLayout的很多特性都无效了.

在AppBarLayout里面的View,通过app:layout_scrollFlags属性来控制,滚动时候的表现.其中有4种Flag的类型.

1⃣️.scroll: 表示向上滚动时,这个View会被滚出屏幕范围直到隐藏.没有设置这个flag的view将被固定在屏幕顶部。例如,TabLayout 没有设置这个值,将会停留在屏幕顶部。

2⃣️.enterAlways: 表示向下滚动时,这个View会随着滚动手势出现,直到恢复原来的位置,启用快速“返回模式”。

3⃣️.enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。 4⃣️.exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。
CollapseToolbarLayout 作用是提供了一个可以折叠的Toolbar,它继承自FrameLayout,给它设置

常用属性及方法:

CollapsingToolbarLayout可实现Toolbar的折叠效果。CollapsingToolbarLayout的子视图类似于LinearLayout的垂直方向排放。

CollapsingToolbarLayout 提供以下属性和方法:  1⃣️.Collapsing title:ToolBar的标题,当CollapsingToolbarLayout没有全屏折叠时,title显示的是大字体,在折叠的过程中,title不断变小直到一定大小的效果。以调用setTitle(CharSequence)方法设置title。  2⃣️. Content scrim:ToolBar被折叠到顶部固定时候的背景,可以调用setContentScrim(Drawable)方法改变背景或者 在属性中使用 app:contentScrim=”?attr/colorPrimary”来改变背景。  3⃣️. Status bar scrim:状态栏的背景,调用方法setStatusBarScrim(Drawable)。不过这个只能在Android5.0以上系统有效果。  4⃣️. Parallax scrolling children:CollapsingToolbarLayout滑动时,子视图的视觉差,可以通过属性app:layout_collapseParallaxMultiplier="0.6"改变。值的范围[0.0,1.0],值越大视差越大。  5⃣️. CollapseMode:子视图的折叠模式,在子视图设置,有两种“pin”:固定模式,在折叠的时候最后固定在顶端;“parallax”:视差模式,在折叠的时候会有个视差折叠的效果。我们可以在布局中使用属性app:layout_collapseMode=”parallax”来改变,实现视差滚动效果,通常和layout_collapseParallaxMultiplier(设置视差因子)搭配使用。 6⃣️.layout_collapseParallaxMultiplier(视差因子) - 设置视差滚动因子,值为:0~1。 

7⃣️.CoordinatorLayout 还提供了一个 layout_anchor 的属性,连同 layout_anchorGravity 一起,可以用来放置与其他视图关联在一起的悬浮视图(如 FloatingActionButton)。本例中使用FloatingActionButton。

8⃣️.contentScrim - 设置当CollapsingToolbarLayout完全折叠(收缩)后的背景颜色。
9⃣️.expandedTitleMarginStart - 设置扩张时候(还没收缩时)title向左填充的距离。
下面是个实现可折叠Toolbar的案例 案例中有许多要注意的点
<?xml version="1.0" encoding="utf-8"?>
<!--CoordinatorLayout本质是个FrameLayout-->
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"

    tools:context="xixirupan.tmgp.com.newdesign.MainActivity">
  <!--  android:fitsSystemWindows="true"必须加上否则toolbar名称设置不上
  AppBarLayout本质是一个LinearLayout vertical
  -->
    <android.support.design.widget.AppBarLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
       android:fitsSystemWindows="true"
      >
        <!-- layout_scrollFlags是AppBar需要滚动的子元素设置的属性
        有四个值exitUntilCollapse,enterAlaways,enterAlwaysUtilCollapse scroll
        要想实现滚动scroll必加 其他三个可以根据需要的效果选择
        CollapsingToolbarLayout通常只包裹TooLbar
        有时候也包裹一张图片作为Toolbar的背景图片 造成一定的视觉效果
        CollapsingToolbarLayout本质也是一个FrameLayout
        -->
    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="#66ff0000"
        app:contentScrim="#6600ff00"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"

        >
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/agin7"
            />
        <!--Toolbar的高必须设置明确的值否则就不会收缩在上面
        原因我想很简单就是toolbar没有明确高不知道该收缩多少这样的话系统将什么也不做
        -->
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            app:title=" "
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"

            >

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>
  <android.support.design.widget.TabLayout
      android:id="@+id/tabLayout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

  </android.support.design.widget.TabLayout>
</android.support.design.widget.AppBarLayout>
    <!--app:layout_behavior="@string/appbar_scrolling_view_behavior"
     该属性是CoordinatorLayout中的需要滚动的子元素设置的属性
    -->
<android.support.v4.widget.NestedScrollView
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <xixirupan.tmgp.com.newdesign.view.NoListView
        android:id="@+id/noListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:entries="@array/items"
        >
    </xixirupan.tmgp.com.newdesign.view.NoListView>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
上面的NoListView是自定义的ListView来解决滑动冲突的这个解决方法如下
public class NoListView extends ListView {
    public NoListView(Context context) {
        super(context);
    }

    public NoListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NoListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

其他的design包下的控件简介:

  
一.简介:

CardView则是Google提供的一个卡片式视图组件,继承自FrameLayout类,可以在一个卡片布局中一致性地显示内容,卡片可以包含圆角和阴影。CardView被包装为一种布局,可以布局其他View,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。CardView应该被使用在显示层次性的内容时;在显示列表或网格时更应该被选择,因为这些边缘可以使得用户更容易去区分这些内容。所以当我们要进行特殊的UI显示时,比如:

1.边框圆角;

2.有阴影Shadow.

等用来突出个性,比如展览,相册等时,都可以考虑使用CardView.

二.常用属性:

  • app:cardElevation 阴影的大小
  • app:cardMaxElevation 阴影最大高度
  • app:cardBackgroundColor 卡片的背景色
  • app:cardCornerRadius 卡片的圆角大小
  • app:contentPadding 卡片内容于边距的间隔
  • app:contentPaddingBottom
  • app:contentPaddingTop
  • app:contentPaddingLeft
  • app:contentPaddingRight
  • app:contentPaddingStart
  • app:contentPaddingEnd
  • app:cardUseCompatPadding 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式.
  • app:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠.

              
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
              
    <android.support.v7.widget.CardViewxmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width= "200dp"
    android:layout_height= "wrap_content"
    card_view:cardBackgroundColor= "#303069"
    card_view:cardCornerRadius= "10dp"
    card_view:cardPreventCornerOverlap= "true"
    card_view:cardUseCompatPadding= "true"
    card_view:contentPadding= "10dp">
    ...
    </android.support.v7.widget.CardView>

    注:在gradle的dependencies中添加:compile 'com.android.support:cardview-v7:24.0.0'

       CardView提供了一个默认的elevation(意为CardView的Z轴阴影)和圆角角度,所以每一个卡片都能够在不同的设备上保持相同的外观。然而,你也可以根据自己的需求去定制这些值。注意:cardElevation属性被用来决定阴影的大小以及柔和度,以至于可以逼真的模拟出对于深度效果的描述。

添加波纹点击效果:

       默认情况,CardView是不可点击的,并且没有任何的触摸反馈效果。触摸反馈动画在用户点击CardView时可以给用户以视觉上的反馈。为了实现这种行为,你必须提供一下属性:

<android.support.v7.widget.CardView ... android:clickable="true" android:foreground="?android:attr/selectableItemBackground"> ... </android.support.v7.widget.CardView>

       使用android:foreground=”?android:attr/selectableItemBackground”可以使CardView点击产生波纹的效果,有触摸点向外扩散。

对更早的版本的支持:

       在AndroidL之前的设备上,CardView为了支持圆角的效果加上了padding,圆角剪裁操作可以算是很昂贵的操作。相似的,对阴影效果来说,在AndroidL之前,也会提供padding去绘制阴影面积,这些内容的padding是和elevation属性相关的,按照文档:

padding值为: 
左右两边的值为:maxCardElevation + (1 - cos45) * cornerRadius 
上下两边的值为:maxCardElevation * 1.5 + (1 - cos45) * cornerRadius

因此,如果你需要给自己的内容加上padding的话,需要使用新的属性:card_view:contentPadding 
相似的,如果改变CardView的背景,也需要使用新的属性:card_view:cardBackgroundColor


示例效果:



  
TextInputLayout只能包含一一个EditText因此比较麻烦 因此出现了InputTextEditText

    TextInputLayout是一个用来包裹EditText的布局,本质上就是一个LinearLayout.它可以在EditText的hint提示信息消失后,用来给用户展示一个浮动的label标签.并且该控件支持展示错误提示信息.    

   该控件是用于包裹EditView输入框的,主要解决之前EditView在获得焦点编辑时hint属性提示语消失,这一点在一个页面有多个EditView输入框的时候不是很好,因为很多可能用户在输入多个EditView之后,不知道当前EditView需要输入什么内容。为了解决这一问题,TextInputLayout就此诞生了。TextInputLayout是继承自LinearLayout容器布局,因此我们需要将EditView包含在TextInputLayout之内才可以使用,言外之意:TextInputLayout不能单独使用。

  
.TextInputEditText:
      和TextInputLayout类似,Design包还有一个组件TextInputEditText,继承AppCompatEditText,可以在右侧显示出错误信息的小弹窗.用法和TextInputLayout类似,可以直接使用TextInputEditText控件.而且不用设置错误信息消除,重新在TextInputEditText输出会自动取消,

什么是 FAB?

FAB 全称:Floating Action Button,是浮动操作按钮,一般作为进阶操作的开关,在用户界面中通常是一个漂浮的小圆圈,它有自身独特的动态效果,比如变形、弹出、位移等等,代表着在当前页面上用户的特定的操作。

   App的标准导航菜单实现方式.导航菜单的内容由菜单menu资源文件来填充.

NavigationView通常被放置于一个 DrawerLayout内部.

       在Material Design中,Navigation drawer导航抽屉,被设计用于应用导航,提供了一种通用的导航方式,体现了设计的一致性。而NavigationView的典型用途就是配合之前v4包的DrawerLayout,作为其中的Drawer部分,即导航菜单的本体部分。NavigationView是一个导航菜单框架,使用menu资源填充数据,使我们可以更简单高效的实现导航菜单。它提供了不错的默认样式、选中项高亮、分组单选、分组子标题、以及可选的Header。

 <android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fitsSystemWindows="true">

     <!-- Your contents -->

     <android.support.design.widget.NavigationView
         android:id="@+id/navigation"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:layout_gravity="start"
         app:menu="@menu/my_navigation_items"/>
 </android.support.v4.widget.DrawerLayout>

典型的布局文件如下,外层是DrawerLayout,它的第一个child将作为content,

第二个child作为Drawer.

注意其中NavigationView的两个自定义属性:

1⃣️.app:headerLayout接收一个layout,作为导航菜单顶部的Header,可选项。

2⃣️.app:menu接收一个menu,作为导航菜单的菜单项,几乎是必选项,不然这个控

件就失去意义了。但也可以在运行时动态改变menu属性。

我们可以用setNavigationItemSelectedListener方法来设置当导航项

被点击时的回调。OnNavigationItemSelectedListener会提供给我们被选中的

MenuItem,这与Activity的onOptionsItemSelected非常类似。通过这个回调方

法,我们可以处理点击事件,改变item的选中状态,更新页面内容,关闭导航菜

单,以及任何我们需要的操作。示例代码如下:

mNavigationView.setNavigationItemSelectedListener(new 
NavigationView.OnNavigationItemSelectedListener() {
@OverridepublicbooleanonNavigationItemSelected(MenuItem menuItem){
   if (sNavigationMap.containsKey(menuItem.getItemId())) {
menuItem.setChecked(true);// 改变item选中状态
            setTitle(menuItem.getTitle()); // 改变页面标题,标明导航状态
            currentNavigationId = menuItem.getItemId();
            mDrawerLayout.closeDrawers(); // 关闭导航菜单
returntrue;
        } else {
returnfalse;
        }
    }
});

关于NavigationView中item的字体颜色和icon选中状态颜色是去当前主题theme中

的

<--正常状态下字体颜色和icon颜色-->
<item name="android:textColorPrimary">@android:color/darker_gray</item>
<--选中状态icon的颜色和字体颜色-->
<item name="colorPrimary">@color/accent_material_light</item>

当然你可以通过如下方法或者属性来改变这一状态:

1⃣️.setItemBackgroundResource(int):给menu设置背景资源,对应的属性
         app:itemBackground.
    2⃣️.setItemIconTintList(ColorStateList):给menu的icon设置颜色,对应的属
         性app:itemIconTint.
    3⃣️.setItemTextColor(ColorStateList):给menu的item设置字体颜色,对应的属性
         app:itemTextColor.

让Claude连续写代码24小时会发生什么?揭秘长时运行”架构背后的工程逻辑与未来 AI长时运行实验揭示软件开发新范式 Claude Opus通过Harness框架24小时独立开发全栈应用的成功实验,展示了AI从辅助工具向异步协作者的进化。实验采用"上下文轮转"机制解决记忆管理难题,将任务拆解为微周期并通过文件系统同步进度。核心突破在于:1)TDD成为AI自治基石,200+测试用例确保开发不偏航;2)文件取代对话成为AI间高效沟通介质;3)开发者角色重构为需求定义和框架设计者。该实验证明,通过严谨的架构约束和验收标准,AI可完成复杂长周期任务,预示着软件开发将从手工作坊 阅读详情

相关推荐

ISP——坏点矫正(Defective Pixel Correction,DPC)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、出现原因二、坏点分类三、矫正方法动态矫正1.PINTO算法2.梯度法3.DPC和demosaic结合法4.行检测法 一、出现原因 1.感光元件芯片自身工艺技术瑕疵造成以及长期使用造成的瑕疵; 2.光线采集存在缺陷; 二、坏点分类 1.hot pixel: 固定保持较高的像素值,一般呈现为画面高亮的点; 2.dead pixel: 固定保持较低的像素值,一般在画面中呈现为暗点; 3.noise pixel:信号强度随光照呈现的.

qq_41939460的博客 9422

代码实现折叠Toolbar主动收起

代码实现折叠Toolbar主动收起 布局文件 注意layout_behavior属性所在控件是支持包中的NestedScrollView &amp;lt;android.support.design.widget.CoordinatorLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmln...

TomCat0916的博客 1656

Prompt Airlines CTF通关实战:从提示词注入到多模态攻击的AI安全攻防演练

提示词注入(Prompt Injection)是当前大语言模型(LLM)应用面临的核心安全威胁之一,其原理在于攻击者通过精心构造的用户输入,覆盖或绕过系统预设的指令,从而操控模型行为。这种攻击手法的技术价值在于揭示了AI系统在理解与执行指令时存在的逻辑边界模糊性,可能导致数据泄露、越权访问等严重风险。在应用场景上,从基础的客服对话到结合视觉识别的多模态系统,都可能成为攻击面。本文以一场名为“Prompt Airlines CTF”的实战挑战为例,深入剖析了包括指令遗忘、上下文注入、工具调用滥用及多模态提示注

aodan5477的博客 518

Android CoordinatorLayout使用

协调者布局

QG 1765

【3D计算机视觉】从PointNet到PointNet++理论及pytorch代码

从PointNet到PointNet++理论及代码详解1. 点云是什么1.1 三维数据的表现形式1.2 为什么使用点云1.3 点云上以往的相关工作2. PointNet2.1 基于点云的置换不变性2.1.1 由对称函数到PointNet(vanilla)2.1.2 理论证明2.2 基于点云的旋转不变性2.3 网络总体结构2.4 实验结果和网络的鲁棒性2.5 代码解析3. PointNet++3.1...

小执着的博客 8万+

PMOS缓启动电路设计实战:用LTspice优化上电时序,把60A冲击降到15A

本文通过一个实战案例,深入解析了PMOS缓启动电路如何有效抑制上电冲击电流。文章指出,低ESR电容是导致冲击电流飙升的元凶,并详细阐述了利用LTspice仿真工具,通过优化栅极电阻和栅源电容等参数,将高达60A的冲击电流成功降至15A的设计与优化过程,为电源开关电路设计提供了可复用的方法论。

onion的博客 899

CoordinatorLayout实现工具栏及页面头部的伸缩与折叠

CoordinatorLayout可以实现工具栏及页面头部的伸缩与折叠,这里记录一下其实现的过程与其中注意的事项。最简单的方法就是在建立Activity模板的时候,选择一下叫ScrollingActivity的,它就帮我们实现了一个简单的可折叠的效果。下图就是默认的效果: 代码如下:<?xml version="1.0" encoding="utf-8"?> <android.support.de

我本无名的专栏 1万+

Amesim(五):单个悬架系统搭建

一、组成 单个悬架系统组成包括:端子,质量块*2,弹簧,阻尼器,速度路面反馈,路面激励。 二、搭建 打开Amesim,在 library 选择 1D Mechanical 选择质量模块,添加到skech中,并按 ctrl+r 旋转质量块,将箭头朝上,设置规定的力传递正方向 添加弹簧阻尼器,与质量块连接 添加VX模块,将路面的激励传递转化为速度和位移,传递给悬架系统 在...

林小川的博客 7169

Android界面设计:Material Design之可折叠式标题栏

虽说现在的标题栏是使用Toolbar来编写的,不过它看上去和传统的ActionBar没什么两样,只不过可以响应RecyclerView的滚动事件来进行隐藏和显示。还可以根据自己的喜好随意定制标题栏的样式这里实现一个可折叠式标题栏的效果,要借助CollapsingToolbarLayout这个工具。

jemo的博客 972

基于simulink 的不间断电源ups的项目实例

UPS系统的核心组件包括整流器、逆变器、电池管理系统和控制系统。- **Three-Phase Controlled Rectifier**:设置触发角为0度,用于控制整流器的输出电压。- **Three-Phase Inverter**:设置逆变器的输出频率为60Hz,用于将直流电转换为交流电。- **Control System**:编写MATLAB函数,用于监测市电状态并控制各模块的工作模式。- **Step**:设置阶跃时间,例如0.05秒,阶跃前后的值分别为0和1,用于模拟市电中断。

xiaoheshang_123的博客 711

EDKII环境配置完整版

参考博客【EDK2 UDK2018的环境搭建】:https://blog.youkuaiyun.com/qq_39155263/article/details/82965744下载EDK2 1.直接从https://github.com/tianocore/edk2/ 网站下载.zip压缩文件 2.运用svn 从http://svn.code.sf.net/p/edk2/code/trunk/edk2edk2下载 3.安装Visual Studio2017 安装其他Tool 1.IASL 从https..

tianpu2320959696的博客 1854

Android Design新控件之TextInputLayout 文本输入布局与自定义颜色简介

Android 从5.0版本开始,新增了Android Materia Design库,让开发者高效的实现炫酷的UI效果 推荐: TextInputLayout(文本输入布局) TabLaout(选项卡布局) Snackbar FloatingActionButton(浮动按钮) NavigationView(导航视图) AppBarLayout(程序栏布局) CoordinatorLay...

shenggaofei的博客 3827

PX4从放弃到精通(五):PX4中的姿态表示方法及转换关系

文章目录机体坐标系与地理坐标系一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 机体坐标系与地理坐标系 在实际应用中,加速度计的测量轴是由运动平台安装固定此器件的轴向决定的。这些坐标轴就形成了载体坐标系,定义如下: 坐标原点设在载体质心(这样可简化运动方程的推导); y轴指向载体前方,称为横滚轴,横滚角以y轴为起始旋转轴而得到,符合右手定则; x轴与y轴夹角90°,指向载体横向,称为俯仰轴,俯仰角以x轴为起始旋转轴而得到,符合右手定则; z轴与x轴、y轴构成右手笛卡儿坐标系,指向载体垂直方向

超维空间科技的博客 8113

【Android】【UI】模仿CoordinatorLayout,手动实现可折叠ToolBar

天天向上 Up Up Up (*^▽^*) 559

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android多个toolbar,Android ToolBar几种常见的用法

前言想必大家对ToolBar以及Material Design有所了解、也一定见过其炫酷的效果。今天咱们就来总结一下集中常见的用法,以便日后工作中使用。先上几张效果图来提提劲。通用的ToolBar.png可以划出屏幕的ToolBar.gif可以折叠的ToolBar.gif自定义样式的ToolBarToolBar默认的样式是这个样子的,ToolBar默认样式.png然而我们常用的是像最上面那张图的样...

weixin_34508682的博客 479

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android实现可折叠的顶部标题栏

5.给滑动列表布局使用NestedScrollView包裹并设置行为layout_behavior="@string/appbar_scrolling_view_behavior。3.要给imageview设置关键属性layout_collapseMode="parallax"4.要给toolbar设置关键属性layout_collapseMode="pin"2.要使用collapsingToolbarLayout包裹toolbar布局。1.最外层一定要使用CoordinatorLayout。

qq_53376963的博客 254

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

可折叠的Toolbar—CollapsingToolbarLayout

1.介绍 CollapsingToolbarLayout的作用是提供了一个可以折叠的Toolbar,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。 效果图如下:

YangLe 2895

Android 折叠式布局

折叠式布局效果图如下从头开始 先建立一个名为项目,然后在创建一个Activity,这个Activity带有自身的XML布局文件,** 标题栏折叠**首先打开文件 将里面的总布局改为里面以此嵌套。如下图所示嵌套好之后设置一些简单的样式即可 到这一步基本上这个折叠布局已经完成了,然后只要填充相关的控件即可实现效果,要注意的点是Toolbar中放置的是你需要折叠和展开的控件,而中放置的是折叠之后显示的控件,这个地方你可以放任何控件,前提是你得避免控件之间的冲突。我们就折叠一个图片。

2401_84149381的博客 1122

Android Material Design之折叠Toolbar(CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+toolbar)(七)

Android Material Design之折叠Toolbar

csdn_yang123的博客 1022

TextInputLayout使用以及自定义颜色

继CoordinatorLayout之后,继续研究 material design 的相关控件TextInputLayout,下面是效果图: 1.gradle 配置 compile ‘com.android.support:design:22.2.0’ compile ‘com.android.support:appcompat-v7:22.2.0’ 2.xml private android.

android_小路的博客 1万+

AppbarLayout的使用

AppbarLayout的简单用法 在许多App中看到, toolbar有收缩和扩展的效果, 例如: appbar.gif 要实现这样的效果, 需要用到: CoordinatorLayout和AppbarLayout的配合, 以及实现了NestedScrollView的布局或控件. AppbarLayout是一种支持响应滚...

Ocean的博客 565

Android实现折叠式Toolbar:CollapsingToolbarLayout 使用教程与解析

简介 在各种不同的应用中,大家可能会经常见到这样一个效果:Toolbar是透明的,有着一个背景图片以及大标题,随着页面向上滑动,其标题逐渐缩放到Toolbar上,而背景图片则在滑动到一定程度后变成了Toolbar的颜色,这种效果也即是折叠式效果。其实这种效果在GitHub上面已经有很多开源库实现了,但是Google在其推出的Design Library库中也给出了一个这种控件,让我们很方便地实现了...

迎风致万里的博客 7313

Android CoordinatorLayout的使用——实现Toolbar的隐藏和折叠

简单介绍下CoordinatorLayout CoordinatorLayout public class CoordinatorLayout extends ViewGroup implements NestedScrollingParent2 java.lang.Object   ↳ android.view.View     ↳ androi...

javaSXL的博客 6368

51.Android 简单的RecyclerView滑动,通过动画显示隐藏toolbar和悬浮按钮

//图片不是动态的凑合看吧    //介绍 两种方式来滑动隐藏悬浮按钮 //-------------------------------------第一种------------------------------------- //首先初始化 private int distance; private boolean visible = true; //第二步 直接代码中使用...

曹二少的博客 2182

CoordinatorLayout打造折叠悬浮效果

一、CoordinatorLayout 是一个ViewGroup,遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的折叠悬浮效果。 二、AppBarLayout 是一个vertical的LinearLayout,其子View应通过下面两种方式来提供他们的Behavior。 ...

qq_28898075的博客 1114

CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout实现折叠式ToolBar

先看效果图: 当界面开始滑动时,“用户名用户名”文字便会缩小折叠到ToolBar上。 要实现这个效果,需要用到以下几个控件:CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout+Toolbar+RecyclerView 布局文件代码如下: &amp;lt;android.support.design.widget.CoordinatorLayout...

qq_41545435的博客 499
上一篇: 循环单链表的实现java
下一篇: XML解析三种方法总结
夕夕如盼
博客等级 码龄12年 28粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值