Android之SlidingPanelLayout
来源:互联网 发布:阿里云邮箱个性签名 编辑:程序博客网 时间:2024/06/15 23:42
SlidingPaneLayout提供一种用于用户接口的顶层的水平,多窗格布局。左边(或第一)窗格被视为一个内容列表或浏览器中,从属的其次的那个窗格用于显示内容的主详图。
如果他们的总宽度超过了SlidingPaneLayout可用宽度,可能会造成视图重叠。发生这种情况时,用户可以拖动以改变视图,或者使用键盘导航。
SlidingPaneLayout其本质是view类,我们可以把这个当成一个普通的layout,里面可以布局其他的布局,例如fragment,LinearLayout,只不过他的布局有左右之分。
一个简单的例子,左侧布局一个layout,里面加了一个listview,显示子项,右侧一个layout,显示所谓的内容。package com.example.slidingpanelayout;import android.os.Bundle;import android.app.Activity;import android.support.v4.widget.SlidingPaneLayout;import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {ListView mMenuList; ImageView appImage; TextView TitleText; SlidingPaneLayout mSlidingPanel; String [] MenuTitles = new String[]{"First Item","Second Item","Third Item","Fourth Item"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mSlidingPanel = (SlidingPaneLayout) findViewById(R.id.SlidingPanel); mMenuList = (ListView) findViewById(R.id.MenuList); appImage = (ImageView)findViewById(android.R.id.home); TitleText = (TextView)findViewById(android.R.id.title); mMenuList.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,MenuTitles)); mSlidingPanel.setPanelSlideListener(panelListener); mSlidingPanel.setParallaxDistance(200); getActionBar().setDisplayShowHomeEnabled(true); getActionBar().setHomeButtonEnabled(true);}PanelSlideListener panelListener = new PanelSlideListener(){ @Override public void onPanelClosed(View arg0) { // TODO Auto-generated method stub getActionBar().setTitle(getString(R.string.app_name)); appImage.animate().rotation(0); } @Override public void onPanelOpened(View arg0) { // TODO Auto-generated method stub getActionBar().setTitle("Menu Titles"); appImage.animate().rotation(90); } @Override public void onPanelSlide(View arg0, float arg1) { // TODO Auto-generated method stub } }; @Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case android.R.id.home:if (mSlidingPanel.isOpen()) {appImage.animate().rotation(0);mSlidingPanel.closePane();getActionBar().setTitle(getString(R.string.app_name));} else {appImage.animate().rotation(90);mSlidingPanel.openPane();getActionBar().setTitle("Menu Titles");}break;default:break;}return super.onOptionsItemSelected(item);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
布局文件
<android.support.v4.widget.SlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/SlidingPanel" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="left"> <ListView android:id="@+id/MenuList" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="right" android:background="#101010" android:orientation="vertical" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/pic_jigongbao" /> </LinearLayout></android.support.v4.widget.SlidingPaneLayout>
demo下载
http://download.csdn.net/detail/abc137508277/8127055
新浪微博
http://weibo.com/blulee/home?wvr=5
0 0
- Android之SlidingPanelLayout
- SlidingPanelLayout和DrawerLayout区别
- SlidingPanelLayout与ViewPager滑动冲突的解决方法
- Andrid仿网易新闻客户端首页滑动框架(ViewPager+SlidingPanelLayout)
- Android之 Android 虚拟机
- Android之 Android 虚拟机
- Android之android:launchMode
- Android之android:launchMode
- Android之android:launchMode
- Android之android:launchMode
- Android 之 Android Studio
- 【Android】Android之创建活动
- 【Android】Android之intent
- android之android-autofittextview
- android 学习之---Android之GoogleMap(转)
- android高手之路之Android Widget
- Android学习之路之Android基本知识
- android之ArrayAdaper之Spinner
- Use gitk to understand git – merge and rebase
- 解决压缩包内乱码问题
- Dreamweaver 8 锚点链接 下载链接和空链接
- const的作用
- 提示Can't load package:dclite70.bpl解决方法
- Android之SlidingPanelLayout
- Struts2
- Xamarin.ios 绑定Objective-C libraries中容易出现的问题
- Unity3D-Cube如何匀速经过空间中最小角度最终朝向空间任一位置
- 羽毛球正确的握拍方法(图文)
- [Leetcode]Convert Sorted List to Binary Search Tree
- Android调用系统自带的文件管理器进行文件选择
- Executing Selenium TestNG tests using ANT
- position 属性和 z-index 属性对页面节点层级影响的例子