91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中利用DrawerLayout實現一個雙向側滑菜單

發布時間:2021-03-29 17:45:01 來源:億速云 閱讀:131 作者:Leah 欄目:移動開發

這篇文章將為大家詳細講解有關怎么在Android中利用DrawerLayout實現一個雙向側滑菜單,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

布局文件的代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <RelativeLayout 
 android:layout_width="fill_parent"
 android:layout_height="45dp"
 android:background="#00ff00"
 >
 <Button 
 android:id="@+id/btn_toggle_left"
 android:layout_width="wrap_content"
 android:layout_height="50dp"
 android:text="左開關"
 />
 <Button 
 android:layout_alignParentRight="true"
 android:id="@+id/btn_toggle_right"
 android:layout_width="wrap_content"
 android:layout_height="50dp"
 android:text="右開關"
 />
 </RelativeLayout>
 <android.support.v4.widget.DrawerLayout
 android:id="@+id/drawerlayout"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <!-- 主布局,位于DrawerLayout的第一次子控件,位置不可以放錯 -->
 <FrameLayout 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <ImageView 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/mainbackground"
 />
 </FrameLayout>
 <!-- 左側菜單 -->
 <RelativeLayout
 android:id="@+id/layout_menu_left"
 android:layout_gravity="start" 
 android:layout_width="150dp"
 android:layout_height="fill_parent"
 android:background="#000"
 >
 <TextView
 android:textColor="#ffffff"
 android:gravity="center"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="左側菜單"
 />
 </RelativeLayout>
 <!-- 右側菜單 -->
 <RelativeLayout
 android:id="@+id/layout_menu_right"
 android:layout_gravity="end" 
 android:layout_width="150dp"
 android:layout_height="fill_parent"
 android:background="#000"
 >
 <TextView
 android:textColor="#ffffff"
 android:gravity="center"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="右側菜單"
 />
 </RelativeLayout>

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

MainActivity的代碼:

public class MainActivity extends Activity implements OnClickListener{

 private DrawerLayout mDrawerLayout;
 private View v_menu_left,v_menu_right;
 private Button btn_left,btn_right;

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

 private void initListener() {
 btn_left.setOnClickListener(this);
 btn_right.setOnClickListener(this);
 }

 private void initView() {
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
 v_menu_left = findViewById(R.id.layout_menu_left);
 v_menu_right = findViewById(R.id.layout_menu_right);
 btn_left = (Button) findViewById(R.id.btn_toggle_left);
 btn_right = (Button) findViewById(R.id.btn_toggle_right);
 }

 @Override
 public void onClick(View v) {
 if(v.getId()==R.id.btn_toggle_left){
 toggleLeft();
 }else if(v.getId()==R.id.btn_toggle_right){
 toggleRight();
 }
 }

 private void toggleRight() {
 if(mDrawerLayout.isDrawerOpen(v_menu_right)){
 mDrawerLayout.closeDrawer(v_menu_right);
 }else{
 mDrawerLayout.openDrawer(v_menu_right);
 }

 }

 private void toggleLeft() {
 if(mDrawerLayout.isDrawerOpen(v_menu_left)){
 mDrawerLayout.closeDrawer(v_menu_left);
 }else{
 mDrawerLayout.openDrawer(v_menu_left);
 }
 }

}

??在布局文件中,第一個子控件是主布局,就是顯示在界面中央的位置,然后第二個和第三個控件作為左菜單和右菜單在兩側隱藏,然后滑動的時候慢慢顯示出來。在第二和第三個控件的屬性設置里,需要注意的是android:layout_gravity屬性,這個屬性決定了菜單的位置是左還是右。當設置成“start”的時候,菜單位于左側,當設置成“end”的時候,菜單位于右側,所以菜單的位置和控件的順序沒有關系,只和屬性值有關。

??然后在MainActivity里面,我們得到DrawerLayout 對象,和兩個菜單對象,對按鈕添加點擊方法。拿左菜單來說,當點擊按鈕的時候,如果左菜單是關閉的,那么我們就打開菜單,如果菜單是打開的,那么我們就關閉它。這就需要知道DrawerLayout的幾個常用方法了。

isDrawerOpen(View v)

該方法用來判斷菜單是否處于打開狀態,傳入的是一個View,表示菜單的View,也就是左菜單或者是右菜單。因為菜單的數量有一個或者以上,所以需要傳入不同的View來判斷是哪一個菜單。

closeDrawer(View v)

該方法用來關閉菜單,傳入的也是菜單的View

openDrawer(View v)

該方法用來打開菜單,同關閉菜單的操作相似。

關于怎么在Android中利用DrawerLayout實現一個雙向側滑菜單就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金溪县| 乐清市| 林芝县| 溆浦县| 黄平县| 云浮市| 天气| 宜阳县| 固阳县| 昌都县| 芦溪县| 仁布县| 扎赉特旗| 汉阴县| 汶川县| 洮南市| 梁河县| 普兰县| 绿春县| 庆城县| 成安县| 大港区| 大化| 达日县| 普格县| 大渡口区| 灌阳县| 衡东县| 周宁县| 东乌珠穆沁旗| 隆化县| 定西市| 新郑市| 布尔津县| 双峰县| 任丘市| 长葛市| 黄龙县| 藁城市| 巩义市| 文昌市|