博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android音乐、视频类APP常用控件:DraggablePanel(2)
阅读量:6438 次
发布时间:2019-06-23

本文共 3020 字,大约阅读时间需要 10 分钟。



Android音乐、视频类APP常用控件:DraggablePanel(2)

附录文章1主要演示了如何使用DraggablePanel 的DraggableView。DraggablePanel除了DraggableView外,本身DraggablePanel与DraggableView不同的是,DraggableView是一个轻量级的“View”, 而DraggablePanel是一个重的面板、“平台”可以承载更重的如Android Fragment的组件。

写一个测试的MainActivity.java:

package zhangphil.demo;import com.github.pedrovgs.DraggableListener;import com.github.pedrovgs.DraggablePanel;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends FragmentActivity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		final DraggablePanel draggablePanel = (DraggablePanel) findViewById(R.id.draggable_panel);		findViewById(R.id.image).setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				draggablePanel.maximize();			}		});		// 注意!添加的监听事件需要放在初始化之前,否则可能无法正常达到监听效果。		draggablePanel.setDraggableListener(new DraggableListener() {			@Override			public void onMaximized() {				Toast.makeText(getApplication(), "onMaximized", Toast.LENGTH_SHORT).show();			}			@Override			public void onMinimized() {				Toast.makeText(getApplication(), "onMinimized", Toast.LENGTH_SHORT).show();			}			@Override			public void onClosedToLeft() {				Toast.makeText(getApplication(), "onClosedToLeft", Toast.LENGTH_SHORT).show();			}			@Override			public void onClosedToRight() {				Toast.makeText(getApplication(), "onClosedToRight", Toast.LENGTH_SHORT).show();			}		});		draggablePanel.setFragmentManager(getSupportFragmentManager());		draggablePanel.setTopFragment(new MyTopFragment());		draggablePanel.setBottomFragment(new MyBottomFragment());		draggablePanel.initializeView();	}	private static class MyTopFragment extends Fragment {		@Override		public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {			View v = inflater.inflate(android.R.layout.simple_list_item_1, null);			v.setBackgroundColor(0xFFEF5350);			TextView text = (TextView) v.findViewById(android.R.id.text1);			text.setText("zhang phil @ csdn , 顶");			return v;		}	}	private static class MyBottomFragment extends Fragment {		@Override		public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {			View v = inflater.inflate(android.R.layout.simple_list_item_1, null);			v.setBackgroundColor(0xFF42A5F5);			TextView text = (TextView) v.findViewById(android.R.id.text1);			text.setText("zhang phil @ csdn , 底");			return v;		}	}}

所需的activity_main.xml布局文件:

代码运行结果,从顶向底拖曳,然后到底后再水平向左拖曳,最终点击Android小机器人使之复位,如图所示:

代码中写了两个不同的Android Fragment加载到DraggablePanel中,分别为top和bottom。

附录文章:

1,《Android音乐、视频类APP常用控件:DraggablePanel(1)》链接地址:
2,《Android自底部平滑向上滑出面板的AndroidSlidingUpPanel》链接地址:
 

你可能感兴趣的文章
26.删除排序数组中的重复项
查看>>
关于Spring的IOC和DI
查看>>
自动化Cobbler安装
查看>>
深度解析 TypeConverter & TypeConverterAttribute (二)
查看>>
STP生成树算法
查看>>
nginx常用配置
查看>>
英语考试(最小生成树)
查看>>
JS数组操作
查看>>
设置组件局部样式原理-属性选择器
查看>>
慕课-北京理工大学 机器学习 大学生上网时间 聚类,小白学习
查看>>
实用算法实现-第6篇 线段树
查看>>
webclientt和httpwebrequest
查看>>
第一个C#控制台程序
查看>>
python练习---购物车
查看>>
[C++基础]025_虚函数和虚函数表
查看>>
ARC的原理详解
查看>>
php代码审计基础笔记
查看>>
hdu1160 dp
查看>>
java服务器端编程
查看>>
JavaScript 语言基础知识点图示
查看>>