Android 上拉面板 AndroidSlidingUpPanel
来源:互联网 发布:淘宝网皮草 编辑:程序博客网 时间:2024/05/22 11:32
上拉详情的时候接触到的,还是这平安的插件使用到的,折腾死我了,所以希望不要重蹈我的覆辙。这个开源控件相当强大,我了解的仅仅是一点点,希望知道多的留下博客网址供点击!
AndroidSlidingUpPanel 是一个上拉面板, 就是向上滑动的时候往上飞出一个显示面板控件, 该库效果在 Google Music, Google Maps and Rdio等 App 中用到。
用法:
使用com.sothree.slidinguppanel.SlidingUpPanelLayout作为您的活动布局的根元素。
布局必须设置为顶部或底部。请确保它有两个元素。
第一个元素是你的主要布局。第二个元素是你的向上滑动面板布局。
主要布局应当具有的宽度和高度设置为match_parent。
滑动的布局的宽度应设置为match_parent;高度应设置为match_parent,WRAP_CONTENT或最大desireable高度。
如果您想定义高度屏幕为percetange,可将其设置为match_parent,滑动视图定义为layout_weight属性。
默认情况下,整个面板将作为拖动区域和将截获的点击和拖动事件。可以通过使用setDragView方法或umanoDragView属性限制牵引区到特定的图。
<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto" android:id="@+id/sliding_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom" sothree:umanoPanelHeight="68dp" sothree:umanoShadowHeight="4dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Main Content" android:textSize="16sp" /> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center|top" android:text="The Awesome Sliding Up Panel" android:textSize="16sp" /></com.sothree.slidinguppanel.SlidingUpPanelLayout>可以参考下。目前的项目需要信息保密,所以demo不能上传,见谅,大家可以百度下或者自己去研究下源码。
package com.pingan.pamaplib.module.base;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;public class SlidingUpPanelTestActivity extends Activity implements View.OnClickListener { private static final String TAG = "SlidingUpPanel"; private SlidingUpPanelLayout mLayout; private View headerView; private Button btn; private float offset; @Override public void onClick(View v) { int id = v.getId(); if(id == R.id.add) { //添加内容,并find头部内容部分 View view = mLayout.loadView(R.layout.pamap_slidingup_content); headerView = view.findViewById(R.id.header); } else if(id == R.id.pamap_iv_back){ //头部返回 if (mLayout != null && (mLayout.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED || mLayout.getPanelState() == SlidingUpPanelLayout.PanelState.ANCHORED)) { mLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); } } else if(id == R.id.mid) { if (mLayout.getAnchorPoint() == 1.0f) { //居中停留 mLayout.setAnchorPoint(0.5f); mLayout.setPanelState(SlidingUpPanelLayout.PanelState.ANCHORED); } else { //取消居中停留 mLayout.setAnchorPoint(1.0f); mLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); } } else { Toast.makeText(this, "@_" + id , Toast.LENGTH_SHORT).show(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pamap_slidingup); mLayout = (SlidingUpPanelLayout) findViewById(R.id.sliding_layout); // //设置监听器,并控制头部的显示及隐藏 mLayout.addPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { //展开时slideOffset=1.0f; 折叠时slideOffset=0; Log.i(TAG, "onPanelSlide, offset " + slideOffset); if(slideOffset>0.5f && headerView!=null) { if(headerView.getVisibility()!=View.VISIBLE) { headerView.setVisibility(View.VISIBLE); } }else if(slideOffset<=0.5f && headerView!=null){ if(headerView.getVisibility()==View.VISIBLE) { headerView.setVisibility(View.GONE); } } } @Override public void onPanelStateChanged(View panel, SlidingUpPanelLayout.PanelState previousState, SlidingUpPanelLayout.PanelState newState) { Log.i(TAG, "onPanelStateChanged " + newState); } }); }}
好了,这篇博客我以后会完善的,现在只是提醒下自己这个东西还要去研究!
1 0
- Android 上拉面板 AndroidSlidingUpPanel
- Android自底部平滑向上滑出面板的AndroidSlidingUpPanel
- android 高仿UC浏览器首页上拉面板效果
- AndroidSlidingUpPanel
- [Android UI控件] AndroidSlidingUpPanel 分析
- 【Android开发】开源库AndroidSlidingUpPanel详解
- 上拉面板, 向上滑动的时候往上飞出一个显示面板的 Android 开源控件
- android 上拉加载
- Android之下拉与上拉刷新
- Android 上拉加载 PullToRefresh
- Android RecycleView上拉加载
- Android上拉加载更多
- android 上拉加载更多
- android RecyclerView上拉加载
- AndroidSlidingUpPanel简析
- android ScrollView实现上拉、下拉更新
- Android ListView 下拉刷新 上拉更多
- android listview 下拉刷新,上拉更多
- 【资源汇集.转】C++编程学习52个经典网站 强力推荐
- 17. Letter Combinations of a Phone Number
- JavaScript编程全解学习日记 一
- posix线程使用详解
- Camera2.0新API下的摄像头预览、原始图像数据获取等
- Android 上拉面板 AndroidSlidingUpPanel
- 百度地图定位API,精度提高
- Android开发工具
- codeforces_652C. Foe Pairs
- 集合第八发练习之容器版V2.0
- 最小二乘法求AR模型
- 最小二乘支持向量机(LS-SVM)工具箱及使用说明
- Java 递归实现格雷码(Gray Code)
- vi基础配置