团队冲刺第十天

今天主要就是对app进行优化了,因为嵌套了各个部分的代码,所以需要进行大结构的修改,突然就增加了一个头疼问题。

也是因为彼此之间的交流没做好,导致代码之间嵌合出现了整体结构的错误。

主要是需要嵌套多层Fragment,这里需要导入一些包。

并且此次在项目中的build.grade和app中的build.grade都需要添加依赖。

项目中:

classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'

 app中:

 implementation 'com.jakewharton:butterknife:10.2.3'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'

 之后进行多层嵌套就可以。

Mainactivity:

package com.example.bowenwang;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;

import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.tabs.TabLayout;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

//    private Intent intent;
    TabLessActivity mfirstFragment;
    MyFragment mmyFragment;
    int panduan=1;
    FragmentManager mFm;
    @BindView(R.id.main_bottn)
    BottomNavigationView mbottomNavigationView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        mbottomNavigationView = findViewById(R.id.main_bottn);
        initView();
        initFragment();
//        findViewById(R.id.button).setOnClickListener(this);
//        findViewById(R.id.button2).setOnClickListener(this);
    }
    private void initFragment() {
        mfirstFragment = new TabLessActivity();
        mmyFragment = new MyFragment();
        mFm = getSupportFragmentManager();
        switchFragment(mmyFragment,mfirstFragment);
    }

    private void initView() {
        StatusBarCompat.compat(this, Color.parseColor("#eb4f38"));
        mbottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                if (item.getItemId() == R.id.discover) {
                    StatusBarCompat.compat(MainActivity.this, Color.parseColor("#eb4f38"));
                    switchFragment(mmyFragment,mfirstFragment);
                    mmyFragment.onResume();
                } else if (item.getItemId() == R.id.me) {
                    StatusBarCompat.compat(MainActivity.this, Color.parseColor("#009EF1"));
                    switchFragment(mfirstFragment,mmyFragment);
                    mfirstFragment.onResume();// 还没搞懂这个方法的意思
                }
                return true;
            }
        });
    }
    private void switchFragment(Fragment currentFragment,Fragment targetFragment) {
        /*开启事务*/
        FragmentTransaction fragmentTransaction = mFm.beginTransaction();
        if(panduan==1){
            fragmentTransaction.add(R.id.main_fragment,currentFragment);
            fragmentTransaction.add(R.id.main_fragment,targetFragment);
            panduan=panduan+1;
        }
        /*页面跳转,参数类型:主FragmentID,需要跳转的FragmentID*/
        fragmentTransaction.hide(currentFragment);
        fragmentTransaction.show(targetFragment);
//        fragmentTransaction.replace(R.id.main_fragment, targetFragment);
        /*提交事务*/
        fragmentTransaction.commit();
    }
    @Override
    public void onClick(View v) {

    }

//    @Override
//    public void onClick(View v) {
//        switch (v.getId()) {
//            case R.id.button:
//                intent=new Intent(MainActivity.this, TabLessActivity.class);
//                break;
//            case R.id.button2:
//                intent=new Intent(MainActivity.this, TabManyActivity.class);
//                break;
//        }
//        startActivity(intent);
//    }
}

 之后在Fragment中可使用多层嵌套,了解之后发现并没有那么难,可能是因为突然出现问题导致有些慌。

这样第一阶段算是进行结尾。

posted @ 2021-05-12 14:21  哦心有  阅读(35)  评论(0编辑  收藏  举报