效果图:


















代码实现:LinearLayout + TextView

package com.anyanyan.vmoive.activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.FrameLayout;import android.widget.TextView;import com.anyanyan.vmoive.R;import com.anyanyan.vmoive.fragment.Fragment1;import com.anyanyan.vmoive.fragment.Fragment2;import com.anyanyan.vmoive.fragment.Fragment3;import com.anyanyan.vmoive.fragment.Fragment4;import butterknife.BindView;import butterknife.ButterKnife;public class Main2Activity extends AppCompatActivity implements View.OnClickListener {    @BindView(R.id.tv_tab1)    TextView mTvTab1;    @BindView(R.id.tv_tab2)    TextView mTvTab2;    @BindView(R.id.tv_tab3)    TextView mTvTab3;    @BindView(R.id.tv_tab4)    TextView mTvTab4;    @BindView(R.id.frameLayout)    FrameLayout mFrameLayout;    private Fragment fragment1, fragment2, fragment3, fragment4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        ButterKnife.bind(this);        initFirst();        bindTabs();    }    private void initFirst() {        mTvTab1.setSelected(true);        if (fragment1 == null) {            fragment1 = new Fragment1();        }        getSupportFragmentManager().beginTransaction().add(R.id.frameLayout, fragment1)                .commitAllowingStateLoss();    }    private void setAllTabNormal() {        mTvTab1.setSelected(false);        mTvTab2.setSelected(false);        mTvTab3.setSelected(false);        mTvTab4.setSelected(false);    }    private void setAllFragmentHide(FragmentTransaction fragmentTransaction) {        if (fragment1 != null) {            fragmentTransaction.hide(fragment1);        }        if (fragment2 != null) {            fragmentTransaction.hide(fragment2);        }        if (fragment3 != null) {            fragmentTransaction.hide(fragment3);        }        if (fragment4 != null) {            fragmentTransaction.hide(fragment4);        }    }    private void bindTabs() {        mTvTab1.setOnClickListener(this);        mTvTab2.setOnClickListener(this);        mTvTab3.setOnClickListener(this);        mTvTab4.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.tv_tab1:                setCurrentTab(1);                break;            case R.id.tv_tab2:                setCurrentTab(2);                break;            case R.id.tv_tab3:                setCurrentTab(3);                break;            case R.id.tv_tab4:                setCurrentTab(4);                break;        }    }    public void setCurrentTab(int tabNo) {        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();        setAllTabNormal();        setAllFragmentHide(transaction);        switch (tabNo) {            case 1:                mTvTab1.setSelected(true);                if (fragment1 == null) {                    fragment1 = new Fragment1();                    transaction.add(R.id.frameLayout, fragment1);                } else {                    transaction.show(fragment1);                }                break;            case 2:                mTvTab2.setSelected(true);                if (fragment2 == null) {                    fragment2 = new Fragment2();                    transaction.add(R.id.frameLayout, fragment2);                } else {                    transaction.show(fragment2);                }                break;            case 3:                mTvTab3.setSelected(true);                if (fragment3 == null) {                    fragment3 = new Fragment3();                    transaction.add(R.id.frameLayout, fragment3);                } else {                    transaction.show(fragment3);                }                break;            case 4:                mTvTab4.setSelected(true);                if (fragment4 == null) {                    fragment4 = new Fragment4();                    transaction.add(R.id.frameLayout, fragment4);                } else {                    transaction.show(fragment4);                }                break;        }        transaction.commitAllowingStateLoss();    }}
布局文件:activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>                                                
TextView的文字颜色设置资源:drawable/tab1_text_color

<?xml version="1.0" encoding="utf-8"?>    
在values文件夹中的colors文件中添加:

name="tab_selected">#FFEA5651name="tab_normal">@color/gray
TextView的drawableTop资源:drawable/tab1_menu.xml(其他3个依次类推)

<?xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android">android:state_selected="true" android:drawable="@mipmap/sgk_tab_course_selected"/>    android:drawable="@mipmap/sgk_tab_course_normal"/>
完成。






更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. android Error inflating class com.google.android.material.ch
  4. Unity3d 调用Android震动
  5. android之File文件简单操作
  6. Android(安卓)文件操作工具类
  7. Android(安卓)Dex文件结构
  8. Android(安卓)通过HTTP POST 上传图片文件
  9. android LayerDrawable 图层的实现

随机推荐

  1. android的多线程操作(一)
  2. 基本布局之线性布局(LinearLayout)
  3. Android(安卓)Handler 机制
  4. 关于android:screenOrientation="portrai
  5. Android晋级之路
  6. 点击LinearLayout使用selector改变TextVi
  7. Android(安卓)9.0设置系统语言
  8. sqlserver中在指定数据库的所有表的所有
  9. 记一次成功的sql注入入侵检测附带sql性能
  10. SQL点滴24 监测表的变化