中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Android如何實(shí)現(xiàn)美團(tuán)APP的底部滑動(dòng)菜單-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Android如何實(shí)現(xiàn)美團(tuán)APP的底部滑動(dòng)菜單”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Android如何實(shí)現(xiàn)美團(tuán)APP的底部滑動(dòng)菜單”這篇文章吧。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供西鄉(xiāng)塘企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為西鄉(xiāng)塘眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

在現(xiàn)在的APP的應(yīng)用中,類似仿美團(tuán)APP的底部滑動(dòng)菜單,應(yīng)用是挺多的,例如QQ,微信,支付寶都應(yīng)用到。開(kāi)發(fā)流程如下

1. 底部按鈕

底部按鈕使用RadioButton。

// 按鈕布局<LinearLayout  android:id="@+id/llradiogroup"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:layout_alignParentBottom="true">  <RadioGroup   android:id="@+id/rg_menu"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:orientation="horizontal">   <RadioButton    android:id="@+id/rbtn_home"        android:checked="true"    android:drawableTop="@drawable/home"    android:text="首頁(yè)" />   <RadioButton    android:id="@+id/rbtn_vest"        android:drawableTop="@drawable/investment"    android:text="投資" />   <RadioButton    android:id="@+id/rbtn_photo"        android:drawableTop="@drawable/shooting"    android:text="拍拍" />   <RadioButton    android:id="@+id/rbtn_mine"        android:drawableTop="@drawable/recom_member"    android:text="我的" />   <RadioButton    android:id="@+id/rbtn_more"        android:drawableTop="@drawable/more"    android:text="更多" /></RadioGroup>

// style樣式<style name="RadioButton"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">60dp</item> <item name="android:gravity">center</item> <item name="android:layout_weight">1</item> <item name="android:button">@null</item> <item name="android:background">@drawable/menueselector</item></style>

style樣式中的menueselector為背景選擇器,使按鈕選中變色

在Res目錄下新建文件夾(drawable-nodpi),在里面建立新的xml文件,選擇資源類型為Drawable的selector,在每一個(gè)selector中建立item選項(xiàng)

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">  <!--選中背景顏色--> <item android:drawable="@color/checked" android:state_checked="true" /> <!--未選中背景顏色--> <item android:drawable="@color/nochecked" android:state_checked="false" /></selector>

2. 中間的滑動(dòng)窗口

<android.support.v4.view.ViewPager  android:id="@+id/viewPager"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layout_above="@+id/llradiogroup">  </android.support.v4.view.ViewPager>

3. 往滑動(dòng)窗口添加按鈕對(duì)應(yīng)的Fragment, 并監(jiān)聽(tīng)相應(yīng)事件

下面的代碼注意兩點(diǎn)

MainActivity需繼承于FragmentActivity,這樣才能找到其中的getSupportFragmentManager()方法    在書(shū)寫(xiě)Fragment時(shí)切記引入的是android.support.v4.app.Fragment,而非android.app.Fragment(android.app.Fragment是在3.0引入的,為了兼容更低版本選android.support.v4.app.Fragment)

package com.lsw.wealthapp.activity;import android.support.v4.app.Fragment;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.widget.RadioButton;import android.widget.RadioGroup;import com.lsw.wealthapp.R;import com.lsw.wealthapp.fragment.CaptureFragment;import com.lsw.wealthapp.fragment.HomeFragment;import com.lsw.wealthapp.fragment.InvestmentFragment;import com.lsw.wealthapp.fragment.MoreFragment;import com.lsw.wealthapp.fragment.MyFragment;import java.util.ArrayList;import java.util.List;public class MainActivity extends FragmentActivity { // HomeFragmentIndex private static final int HomeViewPagerIndex = 0; // InvestmentFragmentIndex private static final int InvsetViewPagerIndex = 1; // CaptureFragmentIndex private static final int CaptureViewPagerIndex = 2; // MyFragmentIndex private static final int MyViewPagerIndex = 3; // MoreFragmentIndex private static final int MoreViewPagerIndex = 4; private ViewPager viewPager; // 主頁(yè)頁(yè)面 private HomeFragment homeFragment; // 投資頁(yè)面 private InvestmentFragment investmentFragment; //拍照頁(yè)面 private CaptureFragment captureFragment; // 我的頁(yè)面 private MyFragment myFragment; // 更多頁(yè)面 private MoreFragment moreFragment; // Fragment集合 private List<Fragment> fragmentList; // FragmentAdapter private MyPageFramgentAdapter myPageFramgentAdapter; // 菜單RadioGroup private RadioGroup radioGroup; // 主頁(yè)按鈕 private RadioButton rbtnHome; // 投資按鈕 private RadioButton rbtnInvest; // 拍照按鈕 private RadioButton rbtnCapture; // 我的按鈕 private RadioButton rbtnMine; // 更多按鈕 private RadioButton rbtnMore; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  initViews(); } private void initViews() {  viewPager = (ViewPager) findViewById(R.id.viewPager);  homeFragment = new HomeFragment();  investmentFragment = new InvestmentFragment();  captureFragment = new CaptureFragment();  myFragment = new MyFragment();  moreFragment = new MoreFragment();  fragmentList = new ArrayList<Fragment>();  radioGroup = (RadioGroup) findViewById(R.id.rg_menu);  rbtnHome = (RadioButton) findViewById(R.id.rbtn_home);  rbtnInvest = (RadioButton) findViewById(R.id.rbtn_vest);  rbtnCapture = (RadioButton) findViewById(R.id.rbtn_photo);  rbtnMine = (RadioButton) findViewById(R.id.rbtn_mine);  rbtnMore = (RadioButton) findViewById(R.id.rbtn_more);  // 按鈕選中,viewPager展示對(duì)應(yīng)的頁(yè)面  radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {   @Override   public void onCheckedChanged(RadioGroup radioGroup, int i) {    switch (i) {     case R.id.rbtn_home:      viewPager.setCurrentItem(HomeViewPagerIndex);      break;     case R.id.rbtn_vest:      viewPager.setCurrentItem(InvsetViewPagerIndex);      break;     case R.id.rbtn_photo:      viewPager.setCurrentItem(CaptureViewPagerIndex);      break;     case R.id.rbtn_mine:      viewPager.setCurrentItem(MyViewPagerIndex);      break;     case R.id.rbtn_more:      viewPager.setCurrentItem(MoreViewPagerIndex);      break;    }   }  });  //將Fragment加入集合中  fragmentList.add(homeFragment);  fragmentList.add(investmentFragment);  fragmentList.add(captureFragment);  fragmentList.add(myFragment);  fragmentList.add(moreFragment);  FragmentManager fm = getSupportFragmentManager();  myPageFramgentAdapter = new MyPageFramgentAdapter(fm);  viewPager.setAdapter(myPageFramgentAdapter);  // viewPager發(fā)生改變,對(duì)應(yīng)的按鈕狀態(tài)變?yōu)檫x中  viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {   @Override   public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {   }   @Override   public void onPageSelected(int position) {    switch (position) {     case HomeViewPagerIndex:      rbtnHome.setChecked(true);      break;     case InvsetViewPagerIndex:      rbtnInvest.setChecked(true);      break;     case CaptureViewPagerIndex:      rbtnCapture.setChecked(true);      break;     case MyViewPagerIndex:      rbtnMine.setChecked(true);      break;     case MoreViewPagerIndex:      rbtnMore.setChecked(true);      break;     default:      break;    }   }   @Override   public void onPageScrollStateChanged(int state) {   }  }); } // viewPager所需的適配器 class MyPageFramgentAdapter extends FragmentPagerAdapter {  public MyPageFramgentAdapter(FragmentManager fm) {   super(fm);  }  @Override  public Fragment getItem(int position) {   return fragmentList.get(position);  }  @Override  public int getCount() {   return fragmentList.size();  } }}

以上是“Android如何實(shí)現(xiàn)美團(tuán)APP的底部滑動(dòng)菜單”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:Android如何實(shí)現(xiàn)美團(tuán)APP的底部滑動(dòng)菜單-創(chuàng)新互聯(lián)
本文路徑:http://m.rwnh.cn/article48/cciohp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、企業(yè)建站、面包屑導(dǎo)航、自適應(yīng)網(wǎng)站小程序開(kāi)發(fā)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
北海市| 黄石市| 通山县| 遂平县| 溧阳市| 铜川市| 德化县| 准格尔旗| 谷城县| 昌江| 神农架林区| 革吉县| 五家渠市| 静安区| 青神县| 八宿县| 黑水县| 仁化县| 阿拉善盟| 改则县| 错那县| 新民市| 沂源县| 含山县| 柞水县| 湟源县| 南京市| 黑山县| 台东市| 林西县| 新竹市| 方山县| 盐津县| 大石桥市| 仲巴县| 古浪县| 鹤山市| 星子县| 余庆县| 安多县| 常熟市|