• 如何简单的实现一个tab页title的动画效果


    首先我们来看看实现的效果 tab上的title沉下去的效果

    先来看看布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:id="@+id/top_bar"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:orientation="horizontal">
            <RelativeLayout
                android:id="@+id/layout_item_one"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">
    
                <TextView
                    android:id="@+id/item_one"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="10dp"
                    android:text="全部"
                    android:layout_centerHorizontal="true"
                    android:textColor="@color/mainColor"
                    android:layout_centerInParent="true"/>
    
                <View
                    android:id="@+id/item_one_bar"
                    android:layout_width="match_parent"
                    android:layout_alignParentBottom="true"
                    android:layout_height="1px"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:background="@color/mainColor" />
            </RelativeLayout>
    
            <RelativeLayout
                android:id="@+id/layout_item_two"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/item_two"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="待回答"
                    android:layout_margin="10dp"
                    android:textColor="@color/fontTextColor"
                    android:layout_centerInParent="true"/>
                <View
                    android:id="@+id/item_two_bar"
                    android:layout_width="match_parent"
                    android:layout_alignParentBottom="true"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_height="1px"
                    android:background="@color/mainColor"
                    android:visibility="gone"/>
            </RelativeLayout>
            <RelativeLayout
                android:id="@+id/layout_item_three"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/item_three"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="已回答"
                    android:layout_margin="10dp"
                    android:layout_centerInParent="true"
                    android:textColor="@color/fontTextColor"/>
                <View
                    android:id="@+id/item_three_bar"
                    android:layout_width="match_parent"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_height="1px"
                    android:background="@color/mainColor"
                    android:layout_alignParentBottom="true"
                    android:visibility="gone"/>
            </RelativeLayout>
            <RelativeLayout
                android:id="@+id/layout_item_four"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/item_four"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="已过期"
                    android:layout_margin="10dp"
                    android:textColor="@color/fontTextColor"
                    android:layout_centerInParent="true"/>
                <View
                    android:id="@+id/item_four_bar"
                    android:layout_width="match_parent"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_height="1px"
                    android:background="@color/mainColor"
                    android:layout_alignParentBottom="true"
                    android:visibility="gone"/>
            </RelativeLayout>
            <RelativeLayout
                android:id="@+id/layout_item_five"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/item_five"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="已拒绝"
                    android:layout_margin="10dp"
                    android:textColor="@color/fontTextColor"
                    android:layout_centerInParent="true"/>
                <View
                    android:id="@+id/item_five_bar"
                    android:layout_width="match_parent"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_height="1px"
                    android:background="@color/mainColor"
                    android:layout_alignParentBottom="true"
                    android:visibility="gone"/>
            </RelativeLayout>
        </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"
            android:layout_height="1px"
            android:background="#ccc"
            />
    </LinearLayout>

    是不是发现没什么特别,是的没什么特别 , 下面贴出用到的代码

     /**
         *
         * @param view
         */
        public void onClick(View view){
            resetTabBg();
            switch (view.getId()){
                case R.id.layout_item_one:
                    setTabPage(0);
                    break;
                case R.id.layout_item_two:
                    setTabPage(1);
                    break;
                case R.id.layout_item_three:
                    setTabPage(2);
                    break;
                case R.id.layout_item_four:
                    setTabPage(3);
                    break;
                case R.id.layout_item_five:
                    setTabPage(4);
                    break;
            }
        }
        /**
         * 重置每个tab
         */
        private void resetTabBg() {
            int color = getResources().getColor(R.color.fontTextColor);
            mTvItemOne.setTextColor(color);
            mVItemOneBar.setVisibility(View.GONE);
            mTvItemTwo.setTextColor(color);
            mVItemTwoBar.setVisibility(View.GONE);
            mTvItemThree.setTextColor(color);
            mVItemThreeBar.setVisibility(View.GONE);
            mTvItemFour.setTextColor(color);
            mVItemFourBar.setVisibility(View.GONE);
            mTvItemFive.setTextColor(color);
            mVItemFiveBar.setVisibility(View.GONE);
        }
    
        /**
         * 跳入某个tab页
         * @param i
         */
        private void setTabPage(int i){
            int color = getResources().getColor(R.color.mainColor);
            if(i == 0){
                mTvItemOne.setTextColor(color);
                mVItemOneBar.setVisibility(View.VISIBLE);
            } else if(i == 1){
    //            hasNew = false;
    //            checkHasNew();
                mTvItemTwo.setTextColor(color);
                mVItemTwoBar.setVisibility(View.VISIBLE);
            } else if(i == 2){
                mTvItemThree.setTextColor(color);
                mVItemThreeBar.setVisibility(View.VISIBLE);
            } else if(i == 3){
                mTvItemFour.setTextColor(color);
                mVItemFourBar.setVisibility(View.VISIBLE);
            } else if(i == 4){
                mTvItemFive.setTextColor(color);
                mVItemFiveBar.setVisibility(View.VISIBLE);
            }
            //切换viewpager页面
            mWdPager.setCurrentItem(i);
        }

    就会发现自动有这个效果了,是不是很简单,是的其实这个只是利用了布局的特点而已.

    如果你不想有这个类似这个动画的效果,可以直接在代码中选择  setVisibility(View.INVISIBLE); //占位不显示 和xml中  View 中加上android:visibility="invisible"

     <View
      android:id="@+id/item_five_bar"
      android:layout_width="match_parent"
      android:layout_marginLeft="10dp"
      android:layout_marginRight="10dp"
      android:layout_height="1px"
      android:background="@color/mainColor"
      android:layout_alignParentBottom="true"
      android:visibility="invisible"/>
  • 相关阅读:
    mysql多源复制,多主一从复制
    Linux初始化环境安装
    sql2014 错误:已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除NoSync 订阅,然后重新创建它们
    Jmeter之模拟文件上传、下载接口操作--转载
    配置元件 之 用户自定义的变量--转载
    多态中成员函数的特点--转载
    Jmeter:cup监控、脚本录制、执行布置----转载
    Selenium JavascriptExecutor 详解
    selenium+java自动化测试环境搭建介绍--转载
    IO实时监控命令iostat详解-转载
  • 原文地址:https://www.cnblogs.com/woaixingxing/p/6755828.html
Copyright © 2020-2023  润新知