第三方組件 SlideMenu 實現步驟與主要方法:
1、構建SlidingMenu menu=new SlidingMenu(context)
2、設置模式爲左側邊欄 menu.setMode(SlidingMenu.LEFT);
3、設置菜單
View menuView=LayoutInflater.from(this).inflate(news_silding_menu, null);
menu.setMenu(menuView);
4、使SlidingMenu附加在Activity上,滑動可出現側邊欄
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
5、開啓菜單
menu.toggle();//動態判斷自動關閉或開啓SlidingMenu
menu.showMenu();//顯示SlidingMenu
顯示側邊欄代碼:
slidingMenu = new SlidingMenu(this); //new一個側邊欄 slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
slidingMenu.setMenu(menuView_L); //將佈局加載到側欄
slidingMenu.setSecondaryMenu(v1); slidingMenu.setBehindWidth(300); //側邊欄出來的寬度 slidingMenu.setBehindOffset(380); //剩餘部分的寬度
slidingMenu.setFadeDegree(0.35f);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); //側邊欄執行開始
SlidingMenu 常用屬性介紹
mSlidingMenu.setMode(SlidingMenu.LEFT);//設置左滑菜單
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置滑動的屏幕範圍,該設置爲全屏區域都可以滑動
mSlidingMenu.setShadowDrawable(R.drawable.shadow);//設置陰影圖片
mSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//設置陰影圖片的寬度
mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu劃出時主頁面顯示的剩餘寬度
mSlidingMenu.setBehindWidth(400);//設置SlidingMenu菜單的寬度
mSlidingMenu.setFadeDegree(0.35f);//SlidingMenu滑動時的漸變程度
mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上
mSlidingMenu.setMenu(R.layout.menu_layout);//設置menu的佈局文件
mSlidingMenu.toggle();//動態判斷自動關閉或開啓SlidingMenu
mSlidingMenu.showMenu();//顯示SlidingMenu
mSlidingMenu.showContent();//顯示內容
mSlidingMenu.setOnOpenListener(onOpenListener);//監聽SlidingMenu打開
關於關閉menu有兩個監聽,簡單的來說,對於menu close事件,一個是when,一個是after
mSlidingMenu.OnClosedListener(OnClosedListener);//監聽SlidingMenu關閉時事件
mSlidingMenu.OnClosedListener(OnClosedListener);//監聽SlidingMenu關閉後事件
mSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//設置左右都可以劃出SlidingMenu菜單
mSlidingMenu.setSecondaryMenu(R.layout.frame_menu);//設置右側菜單的佈局文件
mSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜單的陰影圖片
練習:實現側邊欄效果,並且點擊會出現已點擊。
佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="#433d3d"
tools:context="com.example.administrator.jreduch03.zuoye2Activity">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="0,1,2">
<TableRow>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_weight="1"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_weight="1"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_weight="1"
/>
</TableRow>
<TextView
android:text="更多登錄方式"
android:id="@+id/tv"
android:gravity="center"
android:textSize="16sp"
android:textColor="#ffffff"
/>
<LinearLayout
android:id="@+id/ll1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" 搜索"
android:textSize="40sp"
android:onClick="sousuo"
android:id="@+id/tv1"
/>
</LinearLayout>
<LinearLayout
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" 收藏"
android:textSize="40sp"
/>
</LinearLayout>
<LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" 通知"
android:textSize="40sp"
/>
</LinearLayout>
<LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" 活動"
android:textSize="40sp"
/>
</LinearLayout>
<LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" 設置"
android:textSize="40sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jietu"
android:src="@mipmap/jietu1"
android:layout_weight="1"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jietu1"
android:layout_weight="1"
/>
</LinearLayout>
<TableLayout
android:stretchColumns="0,1">
<TableRow>
<TextView
android:text="離線"
android:textSize="20sp"
android:gravity="center"
/>
<TextView
android:text="夜間"
android:textSize="20sp"
android:gravity="center"
/>
</TableRow>
</TableLayout>
</TableLayout>
</RelativeLayout>
佈局效果:
代碼:
package com.example.administrator.jreduch05;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class SlidingMenuActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sliding_menu);
SlidingMenu slidingMenu=new SlidingMenu(this);
View view =getLayoutInflater().inflate(R.layout.activity_zuoye82_2,null);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//設置屏幕滑動範圍
slidingMenu.setMenu(view);
//設置左側滑動佈局
slidingMenu.setMode(SlidingMenu.LEFT);
slidingMenu.setBehindOffset(380);
//設置滑出後屏幕剩餘寬度
slidingMenu.setFadeDegree(0.35f);
//滑出後動畫效果
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//附加到Activity
tv=(TextView) findViewById(R.id.tv1);
}
public void sousuo(View view){
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(),
"點擊了搜索",Toast.LENGTH_SHORT).show();
}
});
}
}
效果: