Android强化——项目基本准备
作者:互联网
项目基本准备:
包: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