Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android仿微信底部切換頁簽

Android仿微信底部切換頁簽

編輯:Android開發實例

       layout:下面

       主界面:activity_main.xml

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3. android:layout_width="match_parent"    
  4. android:layout_height="match_parent"    
  5. android:orientation="vertical">    
  6.     
  7.     <android.support.v4.view.ViewPager    
  8. android:id="@+id/main_ViewPager"    
  9. android:layout_width="match_parent"    
  10. android:layout_height="0dp"    
  11. android:layout_weight="1">    
  12.     </android.support.v4.view.ViewPager>    
  13.     
  14.     <RadioGroup    
  15. android:id="@+id/tab_menu"    
  16. android:layout_width="match_parent"    
  17. android:layout_height="wrap_content"    
  18. android:background="@drawable/tab_menu_bg"    
  19. android:orientation="horizontal">    
  20.     
  21.         <RadioButton    
  22. android:id="@+id/tab_square"    
  23. android:layout_width="0dp"    
  24. android:layout_height="wrap_content"    
  25. android:layout_gravity="bottom"    
  26. android:layout_weight="1"    
  27. android:background="@drawable/tab_selector_checked_bg"    
  28. android:button="@null"    
  29. android:checked="true"    
  30. android:drawableTop="@drawable/tab_selector_square"    
  31. android:gravity="center_horizontal|bottom"    
  32. android:paddingBottom="10dp"    
  33. android:paddingTop="10dp"    
  34. android:text="@string/square_name"    
  35. android:textColor="@drawable/tab_selector_txt_color"    
  36. android:textSize="20dp"/>    
  37.     
  38.         <RadioButton    
  39. android:id="@+id/tab_chat"    
  40. android:layout_width="0dp"    
  41. android:layout_height="wrap_content"    
  42. android:layout_gravity="bottom"    
  43. android:layout_weight="1"    
  44. android:background="@drawable/tab_selector_checked_bg"    
  45. android:button="@null"    
  46. android:drawableTop="@drawable/tab_selector_message"    
  47. android:gravity="center_horizontal|bottom"    
  48. android:paddingBottom="10dp"    
  49. android:paddingTop="10dp"    
  50. android:text="@string/chat_name"    
  51. android:textColor="@drawable/tab_selector_txt_color"    
  52. android:textSize="20dp"/>    
  53.     
  54.         <RadioButton    
  55. android:id="@+id/tab_mine"    
  56. android:layout_width="0dp"    
  57. android:layout_height="wrap_content"    
  58. android:layout_gravity="bottom"    
  59. android:layout_weight="1"    
  60. android:background="@drawable/tab_selector_checked_bg"    
  61. android:button="@null"    
  62. android:drawableTop="@drawable/tab_selector_mine"    
  63. android:gravity="center_horizontal|bottom"    
  64. android:paddingBottom="10dp"    
  65. android:paddingTop="10dp"    
  66. android:text="@string/mine_name"    
  67. android:textColor="@drawable/tab_selector_txt_color"    
  68. android:textSize="20dp"/>    
  69.     </RadioGroup>    
  70.     
  71. </LinearLayout>    
  72. fragment_chat.xml:    
  73. <?xml version="1.0" encoding="utf-8"?>    
  74. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  75. android:layout_width="match_parent"    
  76. android:layout_height="match_parent"    
  77. android:orientation="vertical">    
  78.     
  79. <TextView    
  80. android:id="@+id/textView3"    
  81. android:layout_width="wrap_content"    
  82. android:layout_height="wrap_content"    
  83. android:text="這是聊天界面"/>    
  84. </LinearLayout>    
  85. fragment_mine.xml:    
  86. <?xml version="1.0" encoding="utf-8"?>    
  87. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  88. android:layout_width="match_parent"    
  89. android:layout_height="match_parent"    
  90. android:orientation="vertical">    
  91.     
  92. <TextView    
  93. android:id="@+id/textView2"    
  94. android:layout_width="wrap_content"    
  95. android:layout_height="wrap_content"    
  96. android:text="這是我的界面"/>    
  97. </LinearLayout>    
  98. fragment_square.xml:    
  99. <?xml version="1.0" encoding="utf-8"?>    
  100. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  101. android:layout_width="match_parent"    
  102. android:layout_height="match_parent"    
  103. android:orientation="vertical">    
  104.     
  105. <TextView    
  106. android:id="@+id/textView2"    
  107. android:layout_width="wrap_content"    
  108. android:layout_height="wrap_content"    
  109. android:text="這是我的界面"/>    
  110. </LinearLayout>    

        fragment_chat.xml

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.               android:layout_width="match_parent"    
  4.               android:layout_height="match_parent"    
  5.               android:orientation="vertical">    
  6.     
  7.     <TextView    
  8.         android:id="@+id/textView3"    
  9.         android:layout_width="wrap_content"    
  10.         android:layout_height="wrap_content"    
  11.         android:text="這是聊天界面"/>    
  12. </LinearLayout>    

       fragment_mine.xml

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.               android:layout_width="match_parent"    
  4.               android:layout_height="match_parent"    
  5.               android:orientation="vertical">    
  6.     
  7.     <TextView    
  8.         android:id="@+id/textView3"    
  9.         android:layout_width="wrap_content"    
  10.         android:layout_height="wrap_content"    
  11.         android:text="這是聊天界面"/>    
  12. </LinearLayout>   

      fragment_square.xml

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.               android:layout_width="match_parent"    
  4.               android:layout_height="match_parent"    
  5.               android:orientation="vertical">    
  6.     
  7.     <TextView    
  8.         android:id="@+id/textView2"    
  9.         android:layout_width="wrap_content"    
  10.         android:layout_height="wrap_content"    
  11.         android:text="這是廣場的界面"/>    
  12. </LinearLayout>    

      MainActivity.java:

Java代碼
  1. package com.xba.answerpro;    
  2.     
  3. import android.support.v4.app.Fragment;    
  4. import android.support.v4.app.FragmentActivity;    
  5. import android.support.v4.app.FragmentManager;    
  6. import android.support.v4.app.FragmentPagerAdapter;    
  7. import android.support.v4.view.ViewPager;    
  8. import android.support.v7.app.AppCompatActivity;    
  9. import android.os.Bundle;    
  10. import android.widget.RadioButton;    
  11. import android.widget.RadioGroup;    
  12.     
  13. import com.xba.answerpro.fragment.ChatFragment;    
  14. import com.xba.answerpro.fragment.MineFragment;    
  15. import com.xba.answerpro.fragment.SquareFragment;    
  16.     
  17. import java.util.ArrayList;    
  18.     
  19. public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener, ViewPager.OnPageChangeListener {    
  20.     private ViewPager mViewPager;    
  21.     private RadioGroup mTabMenu;    
  22.     private RadioButton mTabSquare;    
  23.     private RadioButton mTabChat;    
  24.     private RadioButton mTabMine;    
  25.     private Fragment squareFragment;    
  26.     private Fragment chatFragment;    
  27.     private Fragment mineFragment;    
  28.     private ArrayList<Fragment> mTabMenus;    
  29.     
  30.     @Override    
  31. protected void onCreate(Bundle savedInstanceState) {    
  32.         super.onCreate(savedInstanceState);    
  33.         setContentView(R.layout.activity_main);    
  34.         squareFragment = new Fragment();    
  35.         chatFragment = new Fragment();    
  36.         mineFragment = new Fragment();    
  37.     
  38.         mTabMenu = (RadioGroup) findViewById(R.id.tab_menu);    
  39.         mTabSquare = (RadioButton) findViewById(R.id.tab_square);    
  40.         mTabChat = (RadioButton) findViewById(R.id.tab_chat);    
  41.         mTabMine = (RadioButton) findViewById(R.id.tab_mine);    
  42.         mTabMenu.setOnCheckedChangeListener(this);    
  43.         initViewPager();    
  44.     }    
  45.     
  46.     public void initViewPager() {    
  47.         mViewPager = (ViewPager) findViewById(R.id.main_ViewPager);    
  48.         squareFragment = new SquareFragment();    
  49.         chatFragment = new ChatFragment();    
  50.         mineFragment = new MineFragment();    
  51.         mTabMenus = new ArrayList<Fragment>();    
  52.         mTabMenus.add(squareFragment);    
  53.         mTabMenus.add(chatFragment);    
  54.         mTabMenus.add(mineFragment);    
  55.     
  56.         FragmentManager fm = getSupportFragmentManager();    
  57.         mViewPager.setAdapter(new MyAdapter(fm, mTabMenus));    
  58.         mViewPager.setCurrentItem(0);    
  59.         mViewPager.addOnPageChangeListener(this);    
  60.     }    
  61.     
  62.     
  63.     @Override    
  64. public void onCheckedChanged(RadioGroup group, int checkedId) {    
  65.         int current = 0;    
  66.         switch (checkedId) {    
  67.             case R.id.tab_square:    
  68.                 current = 0;    
  69.                 break;    
  70.             case R.id.tab_chat:    
  71.                 current = 1;    
  72.                 break;    
  73.             case R.id.tab_mine:    
  74.                 current = 2;    
  75.                 break;    
  76.         }    
  77.         if (mViewPager.getCurrentItem() != current) {    
  78.             mViewPager.setCurrentItem(current);    
  79.         }    
  80.     }    
  81.     
  82.     @Override    
  83. public void onPageSelected(int position) {    
  84.         switch (mViewPager.getCurrentItem()) {    
  85.             case 0:    
  86.                 mTabMenu.check(R.id.tab_square);    
  87.                 break;    
  88.             case 1:    
  89.                 mTabMenu.check(R.id.tab_chat);    
  90.                 break;    
  91.             case 2:    
  92.                 mTabMenu.check(R.id.tab_mine);    
  93.                 break;    
  94.         }    
  95.     
  96.     }    
  97.     
  98.     @Override    
  99. public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {    
  100.     
  101.     }    
  102.     
  103.     @Override    
  104. public void onPageScrollStateChanged(int state) {    
  105.     }    
  106.     
  107.     public class MyAdapter extends FragmentPagerAdapter {    
  108.         ArrayList<Fragment> list;    
  109.     
  110.         public MyAdapter(FragmentManager fm, ArrayList<Fragment> arrayList) {    
  111.             super(fm);    
  112.             this.list = arrayList;    
  113.         }    
  114.     
  115.         @Override    
  116. public int getCount() {    
  117.             return list.size();    
  118.         }    
  119.     
  120.         @Override    
  121. public Fragment getItem(int arg0) {    
  122.             return list.get(arg0);    
  123.         }    
  124.     }    
  125. }    

       ChatFragment.java:

Java代碼
  1. package com.xba.answerpro.fragment;    
  2.     
  3. import android.os.Bundle;    
  4. import android.support.v4.app.Fragment;    
  5. import android.view.LayoutInflater;    
  6. import android.view.View;    
  7. import android.view.ViewGroup;    
  8.     
  9. import com.xba.answerpro.R;    
  10.     
  11. public class ChatFragment extends Fragment {    
  12.     @Override    
  13. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    
  14.         View view = inflater.inflate(R.layout.fragment_chat, container, false);    
  15.         return view;    
  16.     }    
  17.     
  18.     @Override    
  19. public void onCreate(Bundle savedInstanceState) {    
  20.         super.onCreate(savedInstanceState);    
  21.     }    
  22. }    

      MineFragment.java:

Java代碼
  1. package com.xba.answerpro.fragment;    
  2.     
  3. import android.os.Bundle;    
  4. import android.support.v4.app.Fragment;    
  5. import android.view.LayoutInflater;    
  6. import android.view.View;    
  7. import android.view.ViewGroup;    
  8.     
  9. import com.xba.answerpro.R;    
  10.     
  11. public class MineFragment extends Fragment {    
  12.     @Override    
  13. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    
  14.         View view = inflater.inflate(R.layout.fragment_mine, container, false);    
  15.         return view;    
  16.     }    
  17.     
  18.     @Override    
  19. public void onCreate(Bundle savedInstanceState) {    
  20.         super.onCreate(savedInstanceState);    
  21.     }    
  22. }    

       SquareFragment.java:

Java代碼
  1. package com.xba.answerpro.fragment;    
  2.     
  3. import android.os.Bundle;    
  4. import android.support.v4.app.Fragment;    
  5. import android.view.LayoutInflater;    
  6. import android.view.View;    
  7. import android.view.ViewGroup;    
  8.     
  9. import com.xba.answerpro.R;    
  10.     
  11. public class SquareFragmentextends Fragment {    
  12.     @Override    
  13. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    
  14.         View view = inflater.inflate(R.layout.fragment_square, container, false);    
  15.         return view;    
  16.     }    
  17.     
  18.     @Override    
  19. public void onCreate(Bundle savedInstanceState) {    
  20.         super.onCreate(savedInstanceState);    
  21.     }    
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved