赞
踩
- package com.example.custom.fragment;
-
- import android.content.Context;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.fragment.app.Fragment;
-
- /**
- * 基本Fragment
- * */
- public abstract class BaseFragment extends Fragment {
-
-
- /**
- * 设置数据
- * */
- protected abstract void setData(Bundle savedInstanceState);
-
- /**
- * 绑定布局
- * */
- protected abstract int setContentLayout();
-
- /**
- * 初始化组件
- * */
- protected abstract void setControls(View view);
-
-
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- }
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setData(savedInstanceState);
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View fragmentView = inflater.inflate(setContentLayout(),container,false);
- return fragmentView;
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- // 控件
- setControls(view);
- }
-
- @Override
- public void onStart() {
- super.onStart();
-
- }
-
- @Override
- public void onResume() {
- super.onResume();
- }
-
- @Override
- public void onPause() {
- super.onPause();
- }
-
- @Override
- public void onStop() {
- super.onStop();
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- }
- }
HomeFragment代码:
- package com.example.custom.fragment;
-
- import android.os.Bundle;
- import android.view.View;
- import android.widget.TextView;
-
- import com.example.custom.R;
-
- public class HomeFragment extends BaseFragment{
-
- private TextView mainTv;
-
- @Override
- protected void setData(Bundle savedInstanceState) {
-
- }
-
- @Override
- protected int setContentLayout() {
- return R.layout.fragment_home;
- }
-
- @Override
- protected void setControls(View view) {
- mainTv = view.findViewById(R.id.mainTV);
- mainTv.setText("Home页面");
- }
-
-
-
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
-
- <TextView
- android:id="@+id/mainTV"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:text="home"/>
-
-
- </LinearLayout>
(1) main_layout.xml代码
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
-
- <androidx.fragment.app.FragmentContainerView
- android:id="@+id/fragment_container_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:orientation="horizontal">
-
- <Button
- android:id="@+id/homeBtn"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="home"/>
- <Button
- android:id="@+id/shoppingBtn"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="shopping"/>
- <Button
- android:id="@+id/myBtn"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="my"/>
-
- </LinearLayout>
-
- </RelativeLayout>
(2) MainActivity.java代码:
- package com.example.custom.main;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import androidx.fragment.app.FragmentManager;
- import androidx.fragment.app.FragmentTransaction;
- import com.example.custom.R;
- import com.example.custom.activity.BaseActivity;
- import com.example.custom.fragment.HomeFragment;
- import com.example.custom.fragment.MyFragment;
- import com.example.custom.fragment.ShoppingFragment;
-
- public class MainActivity extends BaseActivity {
-
- private Button home,shop,my;
-
- // 获取Fragment管理对象(此方法只能在继承AppCompatActivity中使用)
- private FragmentManager fragmentManager = getSupportFragmentManager();
- private FragmentTransaction transaction;
- // fragment
- private HomeFragment homeFragment = new HomeFragment();
- private ShoppingFragment shoppingFragment = new ShoppingFragment();
- private MyFragment myFragment = new MyFragment();
-
-
- @Override
- public void setData(Bundle savedInstanceState) {
- // 竖屏
- setScreenPortrait(true);
- }
-
- @Override
- public int setContentLayout() {
- return R.layout.main_layout;
- }
-
- @Override
- public void setControls() {
- home = findViewById(R.id.homeBtn);
- home.setOnClickListener(homeClick);
-
- shop = findViewById(R.id.shoppingBtn);
- shop.setOnClickListener(shopClick);
-
- my = findViewById(R.id.myBtn);
- my.setOnClickListener(myClick);
- // 默认home
- // 必须写下面的三条语句
- transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.fragment_container_view,homeFragment);
- transaction.commit();
- }
-
-
- View.OnClickListener homeClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- // 必须写下面的三条语句
- transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.fragment_container_view,homeFragment);
- transaction.commit();
- }
- };
-
- View.OnClickListener shopClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- // 必须写下面的三条语句
- transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.fragment_container_view,shoppingFragment);
- transaction.commit();
- }
- };
-
- View.OnClickListener myClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- // 必须写下面的三条语句
- transaction = fragmentManager.beginTransaction();
- transaction.replace(R.id.fragment_container_view,myFragment);
- transaction.commit();
- }
- };
-
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。