(仿头条APP项目)2.主界面按钮切换Fragment页面
生活随笔
收集整理的這篇文章主要介紹了
(仿头条APP项目)2.主界面按钮切换Fragment页面
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 主界面按鈕切換Fragment頁面
- 效果展示
- 框架結構
- xml視圖
- 主視圖
- 選擇器和style
- java代碼模塊
- 創建4個Fragment
- 1.綁定按鈕選擇事件
- 2.初始化和用HashMap管理fragment對象
- 3.創建切換Fragment功能的方法
- 總代碼
主界面按鈕切換Fragment頁面
效果展示
框架結構
xml視圖
主視圖
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:android="http://schemas.android.com/apk/res/android" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="80dp"android:background="#ffffff"></LinearLayout><FrameLayoutandroid:id="@+id/fl_content"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></FrameLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="80dp"><RadioGroupandroid:id="@+id/rg_option"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:checkedButton="@id/rb_home"><RadioButtonandroid:id="@+id/rb_home"style="@style/my_radiobutton"android:drawableTop="@drawable/selctor_home"android:text="首頁"/><RadioButtonandroid:id="@+id/rb_video"style="@style/my_radiobutton"android:text="西瓜視頻"android:drawableTop="@drawable/selctor_video"/><RadioButtonstyle="@style/my_radiobutton"android:background="@mipmap/asq"/><RadioButtonandroid:id="@+id/rb_talk"style="@style/my_radiobutton"android:text="微頭條"android:drawableTop="@drawable/selctor_talk"/><RadioButtonandroid:id="@+id/rb_user"style="@style/my_radiobutton"android:drawableTop="@drawable/selctor_user"android:text="我的"/></RadioGroup></LinearLayout> </LinearLayout>選擇器和style
準備被選擇時的按鈕圖片和正常未選中時的按鈕圖片,將其在選擇器中設置
java代碼模塊
創建4個Fragment
public class HomeFragment extends Fragment {@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = getMyView();return view;}private View getMyView() {TextView textView= new TextView(getActivity());textView.setBackgroundColor(Color.BLUE);textView.setText("首頁");textView.setTextSize(30);textView.setGravity(Gravity.CENTER);return textView;}1.綁定按鈕選擇事件
private void listenRadioButton() {//初始化RadioGroupRadioGroup radioGroup = findViewById(R.id.rg_option);radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {setContentShowFragment(checkedId);}});}2.初始化和用HashMap管理fragment對象
//創建成員HashMap變量HashMap<Integer,Fragment> map ;private void initPages() {//初始化HomeFragment homeFragment = new HomeFragment();TalkFragment talkFragment = new TalkFragment();UserFragment userFragment = new UserFragment();VideoFragment videoFragment = new VideoFragment();//管理四個頁面//初始化HashMapmap = new HashMap<>();map.put(R.id.rb_home,homeFragment);map.put(R.id.rb_talk,talkFragment);map.put(R.id.rb_user,userFragment);map.put(R.id.rb_video,videoFragment);}3.創建切換Fragment功能的方法
private void setContentShowFragment(int checkedId) {Fragment fragment = map.get(checkedId);//通過fragment 的管理者將fragment顯示在指定的布局FragmentManager fragmentManager = getSupportFragmentManager();FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();//根據id來切換fragment界面fragmentTransaction.replace(R.id.fl_content,fragment);//必須提交,頁面才會更新fragmentTransaction.commit();}總代碼
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.RadioGroup;import com.example.administrator.zhjrtt.R; import com.xzit.fragment.HomeFragment; import com.xzit.fragment.TalkFragment; import com.xzit.fragment.UserFragment; import com.xzit.fragment.VideoFragment;import java.util.HashMap;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//1.創建監聽器listenRadioButton();//2.初始化和用HashMap管理fragment對象initPages();//3.創建切換Fragment功能的方法setOnContentShowFragmet(int checkedId)//4.設置HomeFragment為默認界面setContentShowFragment(R.id.rb_home);}private void setContentShowFragment(int checkedId) {Fragment fragment = map.get(checkedId);//通過fragment 的管理者將fragment顯示在指定的布局FragmentManager fragmentManager = getSupportFragmentManager();FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();//根據id來切換fragment界面fragmentTransaction.replace(R.id.fl_content,fragment);//必須提交,頁面才會更新fragmentTransaction.commit();}//創建成員HashMap變量HashMap<Integer,Fragment> map ;private void initPages() {//初始化HomeFragment homeFragment = new HomeFragment();TalkFragment talkFragment = new TalkFragment();UserFragment userFragment = new UserFragment();VideoFragment videoFragment = new VideoFragment();//管理四個頁面//初始化HashMapmap = new HashMap<>();map.put(R.id.rb_home,homeFragment);map.put(R.id.rb_talk,talkFragment);map.put(R.id.rb_user,userFragment);map.put(R.id.rb_video,videoFragment);}private void listenRadioButton() {//初始化RadioGroupRadioGroup radioGroup = findViewById(R.id.rg_option);radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {setContentShowFragment(checkedId);}});} } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的(仿头条APP项目)2.主界面按钮切换Fragment页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (仿头条APP项目)1.app载入界面相
- 下一篇: (Java集合框架)集合框架概述和Col