日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SlideringDrawer的使用(抽屉效果)

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SlideringDrawer的使用(抽屉效果) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 ?SlidingDrawer 這個類,也就是所謂的"抽屜"類。它的用法很簡單,要包括handle ,和content .handle 就是當你點擊它的時候,content 要么抽抽屜要么關抽屜。
這是上下拉抽屜的效果,將 SlidingDrawer屬性設置為android:orientation="vertical"即可


這是左右拉抽屜的效果,將 SlidingDrawer屬性設置為android:orientation="horizontal"即可。




二、重要屬性

  android:allowSingleTap:指示是否可以通過handle打開或關閉

  android:animateOnClick:指示是否當使用者按下手柄打開/關閉時是否該有一個動畫。

  android:content:隱藏的內容

  android:handle:handle(手柄)

  三、重要方法

  animateClose():關閉時實現動畫。

? ? ?close():即時關閉

  getContent():獲取內容

  isMoving():指示SlidingDrawer是否在移動。

  isOpened():指示SlidingDrawer是否已全部打開

  lock():屏蔽觸摸事件。

  setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener):SlidingDrawer關閉時調用

  unlock():解除屏蔽觸摸事件。

  toggle():切換打開和關閉的抽屜SlidingDrawer。



上面例子的布局文件:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="效果顯示:" /> <SlidingDrawer android:id="@+id/drawer1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:handle="@+id/layout1" android:content="@+id/mycontent1"> <LinearLayout android:id="@id/layout1" android:orientation="vertical" android:layout_width="35sp" android:layout_height="wrap_content" android:gravity="center"> <ImageView android:id="@+id/myImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/open" /> </LinearLayout> <GridView android:id="@id/mycontent1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="2" android:gravity="center" /> </SlidingDrawer> </LinearLayout> </FrameLayout>


java文件:

import android.app.Activity; import android.os.Bundle; import android.widget.GridView; import android.widget.ImageView; import android.widget.SlidingDrawer; import android.widget.SlidingDrawer.OnDrawerCloseListener; import android.widget.SlidingDrawer.OnDrawerOpenListener; import android.widget.SlidingDrawer.OnDrawerScrollListener; public class SlidingDrawerActivity extends Activity { /** Called when the activity is first created. */ private SlidingDrawer sd; private GridView gv; private ImageView iv; private int [] itemIcons = new int [] { R.drawable.alarm, R.drawable.calendar, R.drawable.camera, R.drawable.clock, R.drawable.music, R.drawable.tv }; private String[] itemString = new String[]{"Alarm","Calendar","camera","clock","music","tv"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.slidrawer); init(); GridAdapter adapter = new GridAdapter(SlidingDrawerActivity.this,itemString,itemIcons); gv.setAdapter(adapter); /* 設定SlidingDrawer被打開的事件處理 */ sd.setOnDrawerOpenListener(new OnDrawerOpenListener() { @Override public void onDrawerOpened() { // TODO Auto-generated method stub iv.setImageResource(R.drawable.close); } }); /* 設定SlidingDrawer被關閉的事件處理 */ sd.setOnDrawerCloseListener(new OnDrawerCloseListener() { public void onDrawerClosed() { iv.setImageResource(R.drawable.open); } }); sd.setOnDrawerScrollListener(new OnDrawerScrollListener() { @Override public void onScrollStarted() { // TODO Auto-generated method stub System.out.println("start"); } @Override public void onScrollEnded() { // TODO Auto-generated method stub System.out.println("end"); } }); } private void init(){ sd = (SlidingDrawer) findViewById(R.id.drawer1); gv = (GridView) findViewById(R.id.mycontent1); iv = (ImageView) findViewById(R.id.myImage); } }



package com.shao.slider; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class GridAdapter extends BaseAdapter { private Context context; private String[] itemString; private int[] itemIcons; public GridAdapter(Context con,String[] itemString,int[] itemIcons){ context = con; this.itemString = itemString; this.itemIcons = itemIcons; } @Override public int getCount() { // TODO Auto-generated method stub return itemIcons.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return itemString[position]; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LayoutInflater inflater = LayoutInflater.from(context); /* 使用item.xml為每幾個item的Layout */ View v = inflater.inflate(R.layout.item, null); /* 取得View */ ImageView iv = (ImageView) v.findViewById(R.id.item_grid); TextView tv = (TextView) v.findViewById(R.id.item_text); /* 設定顯示的Image與文? */ iv.setImageResource(itemIcons[position]); tv.setText(itemString[position]); return v; } }

還有注意的是:

SlidingDrawer should be used as an overlay inside layouts. This means SlidingDrawer should only be used inside of a FrameLayout or a RelativeLayout for ? ? ? instance,如果顯示的時候不正常,考慮上面的原因。







轉載于:https://www.cnblogs.com/android-html5/archive/2011/07/23/2534128.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的SlideringDrawer的使用(抽屉效果)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。