淘宝(阿里百川)手机客户端开发日记第三篇 SlidingPaneLayout实现侧滑菜单

需要的三个布局文件:

  activity_main.xml :主窗体布局

left.xml : 左侧栏目分类布局

  right.xml : 右侧内容详情

需要的组件: android.support.v4.widget.SlidingPaneLayout



布局代码

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.slidepaneldemo.MainActivity" >

    <LinearLayout
       		android:layout_width="match_parent"
    		android:layout_height="40dp"
    >
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="分类" />

    </LinearLayout>

    <View android:layout_width="match_parent"
        	android:layout_height="0.6dp"
        	android:background="#ff0000"
        />
   <LinearLayout
       		android:layout_width="match_parent"
    		android:layout_height="match_parent"
    >
	    <android.support.v4.widget.SlidingPaneLayout
	        android:id="@+id/slidepanel"
	        android:layout_width="match_parent"
	        android:layout_height="match_parent" >

	    	 <include
		        android:id="@+id/id_left"
		        layout="@layout/left"/>
		     <include
		        android:id="@+id/id_left"
		        layout="@layout/right"/>

	     </android.support.v4.widget.SlidingPaneLayout>
	</LinearLayout>
</LinearLayout>

  其中:left.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="92dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#cccccc">

    <ListView
        android:layout_width="92dp"
        android:layout_height="match_parent"
        android:entries="@array/menu_list" >
	</ListView>

</LinearLayout>

  right.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="173dp"
        android:text="右侧正文" />

</RelativeLayout>

  对应的图示效果:左侧图,右侧图 ,主窗体图(第三张图和第二张图差不多,但是第三张图示主窗体图,其中,左侧图默认不显示。)

我们现在需要实现点击分类,将左侧的分类展现出来,如图效果:

实现代码如下(.java):

package com.example.slidepaneldemo;

import android.app.Activity;
import android.os.Bundle;
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.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements PanelSlideListener {

	Button button1;
	SlidingPaneLayout slidepanel;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		button1 = (Button)findViewById(R.id.button1);
		slidepanel = (SlidingPaneLayout)findViewById(R.id.slidepanel);
		/*          * 判断左侧分类是否展示,很简单的逻辑代码吧          */
		button1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				if(!slidepanel.isOpen())
				{
					slidepanel.openPane();
				}
				else
				{
					slidepanel.closePane();
				}
			}
		});
	}

	@Override
	public void onPanelClosed(View arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onPanelOpened(View arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onPanelSlide(View arg0, float arg1) {
		// TODO Auto-generated method stub

	}

}

  

时间: 2024-10-07 22:56:04

淘宝(阿里百川)手机客户端开发日记第三篇 SlidingPaneLayout实现侧滑菜单的相关文章

淘宝(阿里百川)手机客户端开发日记第十篇 阿里百川服务器环境介绍

阿里百川的官方网址:http://baichuan.taobao.com/ ,具体详情,自己点击去查看. 提前声明:本人和淘宝一点关系没有,最近是自己有个项目,需要使用它们的平台,来开发android,IOS的客户端产品,所以将平时在实践过程中,很多重要的心得记下,方便自己后期遇到问题,随时查阅:同时,也能帮助很多爱好编程者提供一些资料,毫无其它目的,谢谢! 这节课,将向你介绍下它的大致内容:刚开始接触阿里百川,很多人会遇到各种各样的,貌似千奇百怪的问题,我将以简明的方式,让大家快速搭配环境,来

淘宝(阿里百川)手机客户端开发日记第十篇 什么是淘宝客(七)

在淘宝客中,有淘宝联盟.卖家.淘客以及买家四个角色.他们每个都是不可缺失的一环,如图所示. (1)淘宝联盟(http://www.alimama.com/):一个推广平台,帮助卖家推广产品:帮助淘客赚取利润,每笔推广的交易抽取相应的服务费用. (2)卖家:佣金支出者,他们提供自己需要推广的商品到淘宝联盟,并设置每卖出一个产品愿意支付的佣金. (3)淘宝客:佣金赚取者,他们在淘宝联盟中找到卖家发布的产品,并且推广出去,当有买家通过自己的推广链接成交后,那么就能够赚到卖家所提供的佣金(其中一部分需要

淘宝(阿里百川)手机客户端开发日记第十一篇 JSP+Servlet篇(一)

由于本人从事.net开发已有多年经验,今天由于工作需要,我只能学习下JSP+Servlet,至于java web提供了更好的开发框架MVC,现在由于时间关系,我只好用JSP+Servlet来搭建服务器端开发.主要是提供了客户端的广告位设置,引导页的设置,以及商品分类的设置,和商品的详情,最后是购物车(客户端). 首先,我们先认识下Java Web开发项目基本的结构 我们写Servlet,和我们.net开发里的服务器端开发类似.服务端的开发主要是和数据库,业务逻辑代码有很大关系.然后将数据投递给前

淘宝(阿里百川)手机客户端开发日记第六篇 广播机制详解(一)

public abstract class BroadcastReceiver; Base class for code that will receive intents sent by sendBroadcast(). If you don't need to send broadcasts across applications, consider using this class with LocalBroadcastManager instead of the more general

淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(六)

Service和Thread的关系 不少初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread? 答案是Service和Thread之间没有任何关系! Service 是在后台运行的,但是它运行在主线程中,Service无法直接和UI进行交互,我们只有通过接口回调和广播机制(下一节将介绍广播机制)来实现对UI的操作: Thread 是用于开启一个子线程,执行一些耗时操作不会阻塞主线程的运行: 举个例子: 某些应用程序可

淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(五)

我们现在对上一节中的DEMO进行改进,在服务中开启线程来执行. package com.example.service; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.util.Log; import android.widget.Button; public class MyService

淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(一)

public abstract class Service; [API文档关于Service类的介绍] A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other appli

淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(二)

DEMO1:当我们点击启动服务时和点击停止服务的时候,观察服务的运行状态,布局由于简单,只是两个普通的Button按钮,在此我只上截图. java代码部分 第一步:我们需要实现一个服务类,继承自service,并实现其中的一些方法:这里我在每个方法里,打印出调用方法的名称. package com.example.service; import android.app.Service; import android.content.Intent; import android.os.IBinde

淘宝(阿里百川)手机客户端开发日记第四篇 自定义ListView详解

我们知道,如果采用官方的ListView,实现的功能在很多时候,并不能满足自己的业务需求,比如在设计到复杂的列表的时候,这一节,我们就开始动手自己实现自定义的ListView. 在上一节中,我们采用了固定的ListView中的数据集,我们对其进行改造:我们重新设置一个ListView的一个模板 template_sort.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a