欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實現(xiàn)右邊抽屜Drawerlayout效果

 更新時間:2016年11月01日 14:41:59   作者:Jack__Frost  
這篇文章主要為大家詳細介紹了Android實現(xiàn)右邊抽屜Drawerlayout效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

側(cè)邊欄是Android應用中很常見的一個界面效果(抽屜效果)。而利用DrawerLayout實現(xiàn)右側(cè)欄是相對簡單的。而且這個控件自帶滑動效果,十分方便。

DrawerLayout屬于android-support-v4.jar的包的內(nèi)容,sdk新的就不用更新了,如果舊版本就需要導入這個包了。

先來看看效果

這里實現(xiàn)了抽屜效果和為了方便使用者在各處可以隨意打開這個抽屜,我在這里定義在點擊菜單可出現(xiàn)抽屜。

代碼說明

1.activity的布局文件

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/drawer_layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >
<!-- 注意drawrlayout的命名,因為一會要使用-->
 <FrameLayout
  android:id="@+id/content_frame"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <fragment
   android:id="@+id/fragment_hello"
    android:name="com.patent.patentwarmsystem.CorrelationFragment"
    android:layout_width="wrap_content"
   android:layout_height="wrap_content" />
 </FrameLayout>


 <include
  layout="@layout/activity_main_right"
  android:id="@+id/right_drawer"
  android:layout_width="240dp"
  android:layout_height="match_parent"
  android:layout_gravity="end"
  android:background="#FFFFFF"
  android:gravity="center_horizontal" >

 </include>

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

可以看到drawlayout可被當作控件使用,然后定義側(cè)邊欄的布局是,include了一個布局,里面可自己定義(隨意)。但是要注意這個右側(cè)的布局屬性android:layout_gravity=”end”。這樣才是放置在右邊。
放置在左邊的是: android:layout_gravity=”start”

2.activity的代碼使用

首先注意導入這個:import android.support.v4.widget.DrawerLayout;

public class MainActivity extends AppCompatActivity {

 private DrawerLayout drawerLayout;
 private ActionBarDrawerToggle toggle;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initDrawerLayout();
  drawerLayout.setScrimColor(Color.GRAY); //這個可以設置抽屜拉出后,主界面的顏色,我這里使用了系統(tǒng)自帶的灰色



 }

 private void initDrawerLayout() {
 //注意:初始化的是drawerlayout整個大布局,不是初始化抽屜的那個id
  drawerLayout = (DrawerLayout) super.findViewById(R.id.drawer_layout);
  drawerLayout.setScrimColor(Color.TRANSPARENT);
  //v4控件 actionbar上的抽屜開關(guān),可以實現(xiàn)一些開關(guān)的動態(tài)效果
  toggle = new ActionBarDrawerToggle(this, drawerLayout,
    R.drawable.star_change, R.string.drawer_open
    , R.string.drawer_close) {
   public void onDrawerClosed(View drawerView) {
    super.onDrawerClosed(drawerView);//抽屜關(guān)閉后
   }

   public void onDrawerOpened(View drawerView) {
    super.onDrawerOpened(drawerView);//抽屜打開后 
   }
  };
  drawerLayout.setDrawerListener(toggle);
 }

 /**
  * 加載菜單
  */
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.menu, menu);
  return true;
 }

//上面說到方便使用者隨處調(diào)用就是這個方法,只需調(diào)用這個方法綁定id即可隨處控制抽屜的拉出
 private void toggleRightSliding(){//該方法控制右側(cè)邊欄的顯示和隱藏
  if(drawerLayout.isDrawerOpen(GravityCompat.END)){
   drawerLayout.closeDrawer(GravityCompat.END);//關(guān)閉抽屜
  }else{
   drawerLayout.openDrawer(GravityCompat.END);//打開抽屜
  }
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
   case R.id.action_personal:
    toggleRightSliding();
    break;
  }
  return super.onOptionsItemSelected(item);
 }
}

另外再給幾個方法,方便讀者的需求改動:

// 通過代碼:根據(jù)重力方向打開指定抽屜 
drawerLayout.openDrawer(Gravity.LEFT); 
// 設置抽屜陰影 
drawerLayout.setDrawerShadow(R.drawable.ic_launcher, Gravity.LEFT); 
// 設置抽屜空余處顏色 
drawerLayout.setScrimColor(Color.BLUE);

好了,實現(xiàn)一個抽屜的功能就是這些代碼,可以看出自定義的空間還是很大的。

相關(guān)文章

最新評論