国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

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

2019-12-12 04:50:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

先來(lái)看看效果

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

代碼說(shuō)明

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的命名,因?yàn)橐粫?huì)要使用--> <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可被當(dāng)作控件使用,然后定義側(cè)邊欄的布局是,include了一個(gè)布局,里面可自己定義(隨意)。但是要注意這個(gè)右側(cè)的布局屬性android:layout_gravity=”end”。這樣才是放置在右邊。
放置在左邊的是: android:layout_gravity=”start”

2.activity的代碼使用

首先注意導(dǎo)入這個(gè):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); //這個(gè)可以設(shè)置抽屜拉出后,主界面的顏色,我這里使用了系統(tǒng)自帶的灰色 } private void initDrawerLayout() { //注意:初始化的是drawerlayout整個(gè)大布局,不是初始化抽屜的那個(gè)id  drawerLayout = (DrawerLayout) super.findViewById(R.id.drawer_layout);  drawerLayout.setScrimColor(Color.TRANSPARENT);  //v4控件 actionbar上的抽屜開(kāi)關(guān),可以實(shí)現(xiàn)一些開(kāi)關(guān)的動(dòng)態(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);//抽屜打開(kāi)后    }  };  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; }//上面說(shuō)到方便使用者隨處調(diào)用就是這個(gè)方法,只需調(diào)用這個(gè)方法綁定id即可隨處控制抽屜的拉出 private void toggleRightSliding(){//該方法控制右側(cè)邊欄的顯示和隱藏  if(drawerLayout.isDrawerOpen(GravityCompat.END)){   drawerLayout.closeDrawer(GravityCompat.END);//關(guān)閉抽屜  }else{   drawerLayout.openDrawer(GravityCompat.END);//打開(kāi)抽屜  } } @Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {   case R.id.action_personal:    toggleRightSliding();    break;  }  return super.onOptionsItemSelected(item); }}

另外再給幾個(gè)方法,方便讀者的需求改動(dòng):

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 连云港市| 凤阳县| 高碑店市| 舟曲县| 克什克腾旗| 乐至县| 海晏县| 屏山县| 游戏| 东乡| 德清县| 闽侯县| 沁阳市| 大新县| 瑞丽市| 福泉市| 溆浦县| 资溪县| 齐齐哈尔市| 海原县| 稻城县| 瓦房店市| 黄龙县| 鲜城| 时尚| 富顺县| 临汾市| 曲阜市| 和硕县| 宣化县| 临安市| 东乌珠穆沁旗| 迭部县| 高陵县| 荃湾区| 柞水县| 光山县| 贺兰县| 邹城市| 宾川县| 忻州市|