1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      怎么在Fragment中使用ViewPager實現(xiàn)一個底部導航欄-創(chuàng)新互聯(lián)

      本篇文章為大家展示了怎么在Fragment中使用ViewPager實現(xiàn)一個底部導航欄,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

      創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元蔡甸做網(wǎng)站,已為上家服務,為蔡甸各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
       
       
        
       
        
       
         
       
          
       
          
       
          
         
       
         
        
       
      

      這個布局實現(xiàn)的效果如下:

      怎么在Fragment中使用ViewPager實現(xiàn)一個底部導航欄

      只看效果,大家覺得挺好的,但是重要的問題來了。

      下面的radioButton點了沒反應,我檢查了一下xml文件,再檢查了一下java代碼,沒有問題啊,我開始方了,,,然后網(wǎng)上搜,好像沒有人遇到這個問題,,檢查好幾遍之后,問旁邊的同學,他說 既然設置了監(jiān)聽,但是沒有反應,那肯定是有一個東西把這個事件消費掉了,我想起來了之前看的事件分發(fā)機制,,建議大家對事件分發(fā)機制不懂的小伙伴趕緊看看,面試和日常寫代碼都要用到,特別是面試,面試官特別喜歡問。

      回歸正題,大家看我的 xml文件,我把viewpager寫在了Radiogroup的下面,并且,layout_height = "fill_parent"     這樣我的viewpager就消費掉了我的radiobutton的點擊事件,其實之后我覺得,是我的邏輯不正確,我應該順序的寫下來,而不是只實現(xiàn)功能,這樣我看自己的代碼可以看懂,可是給別人可能會造成誤解。

      好了,開始說一下,實現(xiàn)底部導航的整個流程,實現(xiàn)的界面還如上:(在studio中寫的)

      actionbar.xml  上面自定義的 actionbar  系統(tǒng)自帶的actionbar在java代碼中去掉了

      代碼功能:  左邊返回鍵 中間顯示的文字 右邊的 更多 鍵   上圖中沒有顯示出來,是因為我沒有讓 左右的鍵顯示出來

       
       
        
         
        
        
        
         
        
       
       
      

      activity_main.xml 文件 
      中間的部分color資源,是我引用的自動的,大家可以自己選擇

       
       
        
        
        
       
         
          
          
          
         
      

      注意一下,radiobutton中的一個屬性是  drawableTop屬性, 這個后面引用的drawable資源是 實現(xiàn) 點擊改變radiobutton狀態(tài)的布局文件,我給大家貼出來 radio_bt_plan.xml文件的代碼,其他的只要新建,copy代碼,改顯示的圖片即可。
      還有,對于初次用studio的伙伴,這里要注意了,new的時候,drawable --->右鍵  ---->  new ----> new resource file (即 出來的第一個) 而不是XML

      radio_bt_plan.xml

       
       
        
        
        
        
       
      

      接下來就是  MainActivity.java文件了

      public class MainActivity extends FragmentActivity { 
       private TextView title_text; 
       private ViewPager vp_main_tab; 
       private List fragmentList = null; 
       private FragmentPagerAdapter mAdapter = null; 
       
       private MyFragment myFragment; 
       private TimeGroupFragment timeGroupFragment; 
       private PlanningFragment planningFragment; 
       
       private RadioButton rb_main_tab_menu1; 
       private RadioButton rb_main_tab_menu2; 
       private RadioButton rb_main_tab_menu3; 
       private RadioGroup rg_main_group; 
       
       @Override 
       protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        requestWindowFeature(Window.FEATURE_NO_TITLE); 
        setContentView(R.layout.activity_main); 
        init(); 
        rg_main_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
       
         @Override 
         public void onCheckedChanged(RadioGroup group, int checkedId) { 
          switch (checkedId) { 
           case R.id.rb_main_tab_menu1: 
            vp_main_tab.setCurrentItem(0); 
            initActionbar(0); 
            break; 
           case R.id.rb_main_tab_menu2: 
            vp_main_tab.setCurrentItem(1); 
            initActionbar(1); 
            break; 
           case R.id.rb_main_tab_menu3: 
            vp_main_tab.setCurrentItem(2); 
            initActionbar(2); 
            break; 
           default: 
            break; 
          } 
       
         } 
        }); 
        initViewPage(); 
       } 
       private void initActionbar(int currentPage) { 
        switch (currentPage) { 
         case 0: 
          title_text.setText(getResources().getString(R.string.TimeRobot)); 
          break; 
         case 1: 
          title_text.setText(getResources().getString(R.string.timeGroup)); 
          break; 
         case 2: 
          title_text.setText(getResources().getString(R.string.My)); 
          break; 
         default: 
          break; 
        } 
       } 
       private void init() { 
        title_text = (TextView) findViewById(R.id.tv_title_actionbar); 
        vp_main_tab = (ViewPager) findViewById(R.id.vp_activity_main); 
        fragmentList = new ArrayList(); 
        rg_main_group = (RadioGroup) findViewById(R.id.rg_main_radioGroup); 
        rb_main_tab_menu1 = (RadioButton) findViewById(R.id.rb_main_tab_menu1); 
        rb_main_tab_menu2 = (RadioButton) findViewById(R.id.rb_main_tab_menu2); 
        rb_main_tab_menu3 = (RadioButton) findViewById(R.id.rb_main_tab_menu3); 
       
        myFragment = new MyFragment(); 
        timeGroupFragment = new TimeGroupFragment(); 
        planningFragment = new PlanningFragment(); 
       
        fragmentList.add(myFragment); 
        fragmentList.add(timeGroupFragment); 
        fragmentList.add(planningFragment); 
       
       
       } 
       
       private void initViewPage() { 
        android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 
        mAdapter = new FragmentPagerAdapter(fm) { 
       
         @Override 
         public int getCount() { 
          return fragmentList == null ? 0 : fragmentList.size(); 
         } 
       
         @Override 
         public android.support.v4.app.Fragment getItem(int position) { 
          return fragmentList.get(position); 
         } 
        }; 
        vp_main_tab.setAdapter(mAdapter); 
        vp_main_tab.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
       
         @Override 
         public void onPageSelected(int position) { 
          initActionbar(position); 
          switch (position) { 
           case 0: 
            rb_main_tab_menu1.setChecked(true); 
            break; 
           case 1: 
            rb_main_tab_menu2.setChecked(true); 
            break; 
           case 2: 
            rb_main_tab_menu3.setChecked(true); 
            break; 
           default: 
            break; 
          } 
         } 
       
         @Override 
         public void onPageScrolled(int arg0, float arg1, int arg2) { 
         } 
       
         @Override 
         public void onPageScrollStateChanged(int state) { 
         } 
        }); 
       } 
      }

      上述內(nèi)容就是怎么在Fragment中使用ViewPager實現(xiàn)一個底部導航欄,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


      文章題目:怎么在Fragment中使用ViewPager實現(xiàn)一個底部導航欄-創(chuàng)新互聯(lián)
      URL地址:http://www.ef60e0e.cn/article/hchos.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        招远市| 团风县| 平谷区| 抚宁县| 德庆县| 阿荣旗| 穆棱市| 光山县| 炎陵县| 交城县| 子长县| 元朗区| 高雄市| 武夷山市| 北碚区| 沈阳市| 南投县| 清新县| 珠海市| 石柱| 日土县| 左云县| 马龙县| 阜新| 佛教| 富民县| 十堰市| 大邑县| 麻栗坡县| 满城县| 库车县| 宜章县| 济宁市| 长寿区| 宜川县| 蒲城县| 德格县| 遂溪县| 宜昌市| 河池市| 宣威市|