V7新控件
来源:互联网 发布:诺基亚软件下载专区 编辑:程序博客网 时间:2024/06/10 20:41
V7
1.AlertDialog
v7风格的Dialog相对原来的版本去掉了跳跃弹出的动画,下方按钮去掉了边框,聚集在了右侧,显示时去掉了分隔线。
ToolBar
取代原先的ActionBar实现相对完美的定制
xml文件
<android.support.v7.widget.Toolbarandroid:id="@+id/md_toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:minHeight="50dp"android:background="?attr/colorPrimary"android:layout_marginBottom="20dp" >
代码
//隐藏系统默认title,我当时修改了theme用的noactionbar的Theme所以这行代码并没用getSupportActionBar().setDisplayShowTitleEnabled(false);Toolbar toolbar = (Toolbar) findViewById(R.id.md_toolbar);//标题toolbar.setTitle("测试");//副标题,显示在标题下方toolbar.setSubtitle("副标题");//logo,显示在标题左侧toolbar.setLogo(R.mipmap.ic_launcher); //导航图标,显示在最左侧,可以使用该图标调出菜单toolbar.setNavigationIcon(android.R.drawable.ic_input_delete);//这个并没有用,设置菜单时重写onCreateOptionMenu即可//toolbar.inflateMenu(R.menu.menu_main);setSupportActionBar(toolbar);toolbar.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) {Toast.makeText(MainActivity.this, "点击了" + item.getItemId(), Toast.LENGTH_SHORT).show(); return false; }});
题外话,如何创建菜单项
//重写该方法,菜单将会显示在toobar上@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); //获取toolbar上的菜单view,也可以在上面的setOnMenuItemClickListener实现更加简单,这里只是一个演示。 MenuItem item = menu.findItem(R.id.action_share); //强转为你需要的view View actionView = item.getActionView(); return super.onCreateOptionsMenu(menu);}//菜单文件,为没有接触过的小伙伴准备的额,相关属性请自行查文档//res/menu/menu_main.xml<menu 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"tools:context=".MainActivity"><itemandroid:id="@+id/ab_search"android:orderInCategory="80"android:title="action_search" app:actionViewClass="android.support.v7.widget.SearchView"/><itemandroid:id="@+id/action_share"android:orderInCategory="90"android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider"app:showAsAction="ifRoom"/><itemandroid:id="@+id/action_settings"android:orderInCategory="100"android:title="action_settings"app:showAsAction="never"/></menu>
2.LinearLayoutCompat
在控件中间添加分隔线
<android.support.v7.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center|center_horizontal"android:orientation="vertical"app:divider="@drawable/line"app:dividerPadding="4dp"app:showDividers="middle">.....</android.support.v7.widget.LinearLayoutCompat>
app:divider=”@drawable/line”
给分隔线设置颜色,这里你需要在drawable在定义shape资源,否则将没有效果。
app:dividerPadding=”25dp”
给分隔线设置距离左右边距的距离。
app:showDividers=”middle|beginning|end”
分隔线显示的位置,有四种参数值:middle 每个item之间,beginning最顶端显示分隔线,end 最底端显示分隔线,none不显示间隔线。
3.ListPopupWindow
public void showListPopup(View view) { String items[] = {"item1", "item2", "item3", "item4", "item5"}; final ListPopupWindow listPopupWindow = new ListPopupWindow(this); //设置ListView类型的适配器 listPopupWindow.setAdapter(new ArrayAdapter<String>(SwipeRefreshActivity.this, android.R.layout.simple_list_item_1, items)); //给每个item设置监听事件 listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(SwipeRefreshActivity.this, "the position is" + position, Toast.LENGTH_SHORT).show(); //listPopupWindow.dismiss(); } }); //设置ListPopupWindow的锚点,也就是弹出框的位置是相对当前参数View的位置来显示, listPopupWindow.setAnchorView(view); //ListPopupWindow 距锚点的距离,也就是相对锚点View的位置 listPopupWindow.setHorizontalOffset(100); listPopupWindow.setVerticalOffset(100); //设置对话框的宽高 listPopupWindow.setWidth(300); listPopupWindow.setHeight(600); listPopupWindow.setModal(false); listPopupWindow.show(); }
3.PopupMenu
public void showPopupMenu(View view) { //参数View 是设置当前菜单显示的相对于View组件位置,具体位置系统会处理 PopupMenu popupMenu = new PopupMenu(this, view); //加载menu布局 popupMenu.getMenuInflater().inflate(R.menu.menu_main, popupMenu.getMenu()); //设置menu中的item点击事件 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { return false; } }); //设置popupWindow消失的点击事件 popupMenu.setOnDismissListener(this); popupMenu.show(); }
4.新风格Spinner
<Spinner android:id="@+id/spinner" style="@android:style/Widget.Holo.Light.Spinner" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner>
5.v4-SwipeRefreshLayout
SwipeRefreshLayout继承自ViewGroup,理论上可以完成任何View的刷新
xml文件
xml文件很简单,就像一个FrameLayout一样简单
代码
final SwipeRefreshLayout swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.md_SwipeRefreshLayout);//设置进度条的颜色swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.BLUE, Color.GREEN);//设置圆形进度条大小swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);//设置进度条背景颜色 swipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.WHITE);//设置下拉多少距离之后开始刷新数据,不要设置的太大,不然怎么拉都不刷新swipeRefreshLayout.setDistanceToTriggerSync(5);
0 0
- V7新控件
- ScriptCase v7的新特性
- Android新特性v7 - CardView
- android support v7 Toolbar控件
- Android的v7包中的新控件——(一)RecyclerView(超级listview,传说会代替listview)
- Android的v7包中的新控件——(二)RecyclerView(超级 listview,传说会代替listview)
- Rational ClearQuest Web V7.1 新特性
- 新控件
- V7 控件 CardView的基本使用
- Android support.v7库包含控件解析
- Android support.v7库中的几种控件,布局控件
- Android support.v7库中的几种控件,布局控件
- IBM Rational V7.5 架构设计产品新特性
- WebSphere Application Server V7关键新特性及显著功能
- IBM Rational ClearQuest V7.1 中的新特性
- 英特尔® 实感™ SDK R5 (v7) 的新特性
- 图表控件AnyChart v7.8.0发布【附下载】
- 奇新Java控件
- 使用Spring Boot快速构建应用
- 配置Tomcat时server.xml和content.xml自动还原问题
- 传智播客Android课程与安卓6.0发布会同步更新
- struct 位域
- jsp传数据到后台乱码的处理方法
- V7新控件
- SVN方法
- iOS在应用中跳转到系统设置界面
- java代理机制
- 【AMPPZ2014】【BZOJ4152】The Captain
- windows10任务管理器磁盘占用100%问题解决
- 宏、函数、宏函数的区别
- 程序设计原则
- error code 1592 Unsafe statement written to the binary log using statement...