【Android UI】CoordinatorLayout实现带图片可拉伸的Toolbar
来源:互联网 发布:excel 2010 vba编程 编辑:程序博客网 时间:2024/05/17 20:23
国际惯例,先看效果
步骤一:
在build.gradle中添加如下代码
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:design:23.0.1' compile 'com.android.support:recyclerview-v7:+'}
布局文件
<?xml version="1.0" encoding="utf-8"?><android.support.design.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:fitsSystemWindows="true" tools:context=".MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="172dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/cat" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.v7.widget.RecyclerView></android.support.design.widget.CoordinatorLayout>
步骤三:
Activity代码
public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; private String[] myDataset = {"A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); collapsingToolbar.setTitle("Title"); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); // improve performance if you know that changes in content // do not change the size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); // specify an adapter (see also next example) mAdapter = new MyAdapter(myDataset); mRecyclerView.setAdapter(mAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
Adapter代码
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private String[] mDataset; public static class ViewHolder extends RecyclerView.ViewHolder { public TextView name; public ViewHolder(View v) { super(v); name = (TextView)v.findViewById(R.id.name); } } public MyAdapter(String[] myDataset) { mDataset = myDataset; } @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item, parent, false); // set the view's size, margins, paddings and layout parameters ViewHolder vh = new ViewHolder(v); return vh; } @Override public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) { String nameStr = mDataset[position]; holder.name.setText(nameStr); } @Override public int getItemCount() { return mDataset.length; }}
0 0
- 【Android UI】CoordinatorLayout实现带图片可拉伸的Toolbar
- ios-实现可拉伸的图片
- [Android] 带阻尼效果的可拉伸的HorizontalScrollView
- CoordinatorLayout、Toolbar、CollapsingToolbarLayout、AppBarLayout和NestedScrollView组合滑动折叠或拉伸Toolbar的demo
- 可拉伸图片的方法
- iOS中实现返回可拉伸不变形的图片
- iOS图片实现可拉伸不变形的处理操作
- [Android]使用draw9patch制作可拉伸图片
- [Android]使用draw9patch制作可拉伸图片
- 使用CollapsingToolbarLayout实现带图片折叠的ToolBar
- Android CoordinatorLayout+AppBarLayout实现toolbar背景渐变透明
- toolbar ,textfield,图片拉伸,Bundle
- 使用CoordinatorLayout实现折叠式ToolBar
- iPhone开发:可拉伸的图片
- iPhone开发:可拉伸的图片
- android 控件 隐藏toolbar-(CoordinatorLayout Toolbar AppbarLayout)
- CoordinatorLayout实现上滑隐藏ToolBar遇到的问题
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现app的折叠效果
- Lisp---牛顿迭代法求平方根
- 一名平庸程序员的自白
- PDO实现用户数据的增删改查
- 504gateway time out nginx
- GitHub使用
- 【Android UI】CoordinatorLayout实现带图片可拉伸的Toolbar
- 【CS】尺度不变特征变换匹配算法SIFT
- restful httpclient request中文乱码解决办法
- AsyncHttpClient 源码分析
- 自定义UINavigationBar,出现坐标下移,UINavitionBar半透明效果
- listView一些常用属性
- 关于数据挖掘的something
- iOS 将时间戳转换为可读字符串
- Java核心技术学习整理(二)