admin管理员组

文章数量:1794759

成品app直播源码,fragment切换 常用写法

成品app直播源码,fragment切换 常用写法

成品app直播源码,fragment切换 常用写法相关的代码 layout

<FrameLayout android:id="@+id/main_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/view_line"/>

Activity onCreate方法

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvMain = (TextView) findViewById(R.id.tv_main); tvMain.setSelected(true);//首页默认选中 tvDynamic = (TextView) findViewById(R.id.tv_dynamic); //默认加载首页 homeFragment = new HomeFragment(); getSupportFragmentManager().beginTransaction().add(R.id.main_container,homeFragment)mit(); tvMain.setOnClickListener(tabClickListener); tvDynamic.setOnClickListener(tabClickListener); } private View.OnClickListener tabClickListener = new View.OnClickListener() { @Override public void onClick(View v) { if (v.getId() != currentId) {//如果当前选中跟上次选中的一样,不需要处理 changeSelect(v.getId());//改变图标跟文字颜色的选中 changeFragment(v.getId());//fragment的切换 currentId = v.getId();//设置选中id } } };

改变fragment的显示

private void changeFragment(int resId) { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();//开启一个Fragment事务 hideFragments(transaction);//隐藏所有fragment if(resId==R.id.tv_main){//主页 if(homeFragment==null){//如果为空先添加进来.不为空直接显示 homeFragment = new HomeFragment(); transaction.add(R.id.main_container,homeFragment); }else { transaction.show(homeFragment);//显示首页的Fragment } }else if(resId==R.id.tv_dynamic){//动态 if(dynamicFragment==null){ dynamicFragment = new DynamicFragment(); transaction.add(R.id.main_container,dynamicFragment); }else { transaction.show(dynamicFragment); } } transactionmit();//一定要记得提交事务 } }

隐藏所有fragment

private void hideFragments(FragmentTransaction transaction){ if (homeFragment != null)//不为空才隐藏,如果不判断第一次会有空指针异常 transaction.hide(homeFragment); if (dynamicFragment != null) transaction.hide(dynamicFragment); }

改变TextView选中颜色

private void changeSelect(int resId){ tvMain.setSelected(false); tvDynamic.setSelected(false); switch (resId) { case R.id.tv_main: tvMain.setSelected(true); break; case R.id.tv_dynamic: tvDynamic.setSelected(true); break; } }

选中和未选中效果

<TextView android:id="@+id/tv_main" // 图片选择器 android:drawableTop="@drawable/tab_item_main_img_selector" // 图片和文字的间距 android:drawablePadding="@dimen/main_tab_item_image_and_text" // 是否可以为焦点 android:focusable="true" // 文字颜色选择器 android:textColor="@drawable/tabitem_txt_sel" />

tab_item_main_img_selector 图片选择器

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="schemas.android/apk/res/android"> <!-- 选中状态显示 --> <item android:drawable="@drawable/icon_tab_main_select" android:state_selected="true"/> <!--非选中状态显示--> <item android:drawable="@drawable/icon_tab_main_normal"/> </selector>

tabitem_txt_sel 文字颜色选择器

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="schemas.android/apk/res/android"> <!-- 选中状态 --> <item android:color="@color/main_tab_item_text_select" android:state_selected="true"/> <!--非选中状态--> <item android:color="@color/main_tab_item_text_normal"/> </selector>

以上就是成品app直播源码,fragment切换 常用写法相关的代码, 更多内容欢迎关注之后的文章

本文标签: 写法成品源码常用app