ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android强化——项目基本准备

2022-04-29 03:00:24  阅读:217  来源: 互联网

标签:fragment void private public 强化 准备 Android fragmentTransaction id


项目基本准备:

  包:model,ui(activity,fragment,adapter),base,utils,persenter,view

  主题:theme中设置NOACTIONBAR去除标题

  color.xml:设置颜色

  Material新组件:BottomNavigationView

  Fragment:设置基础BaseFragment简化操作。通过getSurpootFragmentManger()获取fragment事务管理器

  LogUtils:方便操作,上线后不用输出log

 

BottomNavigationView:底部导航栏

  属性:

    app:menu 设置菜单(记住,menu里都是控件)

    app:itemIconTint:用selector设置点击后icon颜色

    app:itemTextColor: 用selector设置点击后text颜色

 

  方法:

    setOnNavigationItemSelectedListener(): 点击子项触发事件

 

FragmentTransaction 

  获取:

    通过getSupportFragmentManger().beigin()

  方法:

    replace(View container , Fragment fragment)

      参数:

        container:包裹fragment的容器,是FramLayout

        fragment:切换的fragment

      返回值:无

      返回值意义:无

      作用:切换到目标fragment,需要commit()才能切换。

 

  

使用:

  MENU

 <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/home"
        android:title="主页"
        android:icon="@mipmap/home_normal"/>

    <item
        android:id="@+id/selected"
        android:title="挑选"
        android:icon="@mipmap/select_normal"/>

    <item
        android:id="@+id/red_packet"
        android:title="特惠"
        android:icon="@mipmap/red_packet_normal"/>

    <item
        android:id="@+id/search"
        android:title="搜索"
        android:icon="@mipmap/search_normal"/>

</menu>

 

  BottomNavigationView

 <com.google.android.material.bottomnavigation.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/navigationView"
        android:layout_alignParentBottom="true"
        app:menu="@menu/navigation_menu"
        app:itemIconTint="@drawable/navigation_selector"
        app:itemTextColor="@drawable/navigation_selector"
        android:background="@color/white" />

 

  综合


public class MainActivity extends AppCompatActivity {
protected BottomNavigationView bottomNavigationView;
private HomeFragment homeFragment;
private SelectedFragment selectedFragment;
private RedPacketFragment redPacketFragment;
private SearchFragment searchFragment;
private FragmentManager supportFragmentManager;
private FragmentTransaction fragmentTransaction;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// model ui(activity,adapter,fragment) base utils presenter view(自定义view)
// BottomNavigationView

/**
* 属性:app:menu 给底部导航栏添加menu
* app:itemIconTint 底部导航栏icon设置颜色
* app:itemTextColor 底部导航栏text设置颜色
*
* */

/**
* menu 中item当单控件来看
* item
* id id
* title 文字
* icon 图标
* */
initView();
initData();
initEvent();
initFragment();
}

public void initView(){
bottomNavigationView = this.findViewById(R.id.navigationView);
}

public void initData(){

}

public void initEvent(){
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch ( item.getItemId() ){
case R.id.home:
fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.main_container,homeFragment);
fragmentTransaction.commit();
break;
case R.id.selected:
fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.main_container,selectedFragment);
fragmentTransaction.commit();
break;
case R.id.red_packet:
fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.main_container,redPacketFragment);
fragmentTransaction.commit();
break;
case R.id.search:
fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.main_container,searchFragment);
fragmentTransaction.commit();
break;
}

return true;
}
});
}

public void initFragment(){
homeFragment = new HomeFragment();
selectedFragment = new SelectedFragment();
redPacketFragment = new RedPacketFragment();
searchFragment = new SearchFragment();
supportFragmentManager = getSupportFragmentManager();
fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.main_container,homeFragment);
fragmentTransaction.commit();
}

}

 

public abstract class BaseFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(getLayoutId(),container,false);
    }

    public abstract int getLayoutId();

}

 

public class HomeFragment extends BaseFragment {
    @Override
    public int getLayoutId() {
        return R.layout.fragment_home;
    }
}

 

public class LogUtils {
    private static int current = 5;
    private static final int INFO_LEV = 4;
    private static final int DEBUG_LEV = 3;
    private static final int WARING_LEV = 2;
    private static final int ERROR_LEV = 1;
    
    public static void i(Class clazz,String str){
        if( current > INFO_LEV ){
            Log.i(clazz.getSimpleName(), str);
        }
    }

    public static void d(Class clazz,String str){
        if( current > DEBUG_LEV ){
            Log.i(clazz.getSimpleName(), str);
        }
    }

    public static void w(Class clazz,String str){
        if( current > WARING_LEV ){
            Log.i(clazz.getSimpleName(), str);
        }
    }

    public static void e(Class clazz,String str){
        if( current > ERROR_LEV ){
            Log.i(clazz.getSimpleName(), str);
        }
    }
}

 

标签:fragment,void,private,public,强化,准备,Android,fragmentTransaction,id
来源: https://www.cnblogs.com/remix777/p/16205232.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有