Fragment之底部导航栏

视图:
在这里插入图片描述
在这里插入图片描述
描述:点击按钮切换界面(我没有在点击后将按钮的背景颜色和图片切换回去,但是这个很简单自己看着这搞就可以)
看一下所需资源:
在这里插入图片描述
在这里插入图片描述
步骤:
1.新建bottomber.xml文件,设置底部导航栏(这里用到了几个图片)

	<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageButton
        android:id="@+id/news_btn"
        android:background="#00000000"
        android:layout_width="130dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toEndOf="@+id/homepage_btn"
        app:layout_constraintTop_toTopOf="@+id/homepage_btn"
        app:srcCompat="@drawable/outinformation" />

    <TextView
        android:id="@+id/news_text"
        android:layout_width="130dp"
        android:layout_height="24dp"
        android:text="                消息"
        app:layout_constraintStart_toEndOf="@+id/homepage_text"
        app:layout_constraintTop_toBottomOf="@+id/news_btn" />

    <ImageButton
        android:id="@+id/personal_btn"
        android:background="#00000000"
        android:layout_width="130dp"
        android:layout_height="40dp"
        app:layout_constraintStart_toEndOf="@+id/news_btn"
        app:layout_constraintTop_toTopOf="@+id/news_btn"
        app:srcCompat="@drawable/outmygame" />

    <ImageButton
        android:id="@+id/homepage_btn"
        android:background="#00000000"
        android:layout_width="130dp"`在这里插入代码片`
        android:layout_height="40dp"
        android:layout_marginTop="670dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/outhomepage" />

    <TextView
        android:id="@+id/personal_text"
        android:layout_width="130dp"
        android:layout_height="24dp"
        android:text="                我的"
        app:layout_constraintStart_toEndOf="@+id/news_text"
        app:layout_constraintTop_toBottomOf="@+id/personal_btn" />

    <TextView
        android:id="@+id/homepage_text"
        android:layout_width="130dp"
        android:layout_height="24dp"
        android:text="                首页"
        app:layout_constraintStart_toStartOf="@+id/homepage_btn"
        app:layout_constraintTop_toBottomOf="@+id/homepage_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>

2.新建maindatafragment.xml,这个文件作用是包括bottomber和想要显示的界面。

	<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".login.view.Privacypolicy">



    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        tools:ignore="MissingConstraints" >

        <View
            android:layout_width="match_parent"
            android:layout_height="0.1dp"
            android:background="#eeeeee"
            tools:ignore="MissingConstraints" />
    </FrameLayout>


    <include
        layout="@layout/bottombar"
        android:layout_width="408dp"
        android:layout_height="725dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

3.建立两个想要显示的界面。
第一个:

	<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/textView30"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="176dp"
        android:layout_marginTop="340dp"
        android:text="信息"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

第二个:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView31"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="176dp"
        android:layout_marginTop="344dp"
        android:text="首页"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

4.新建两个Activity,NewsData和HomepageData
第一个Activity:

	package com.threerookies.gw.homePageFragment.view;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.threerookies.gw.R;

public class NewsData extends Fragment {
    public NewsData(){
    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.newsdatafragment, container, false);
        }
        }

第二个Activity:

package com.threerookies.gw.homePageFragment.view;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.threerookies.gw.R;

public class HomepageData extends Fragment {
    public HomepageData(){
    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.homepagedatafragment, container, false);
    }
}

5.最后一步:新建Activity,AllData

    package com.threerookies.gw.homePageFragment.view;

import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.threerookies.gw.R;

public class AllData extends AppCompatActivity implements View.OnClickListener {
    private ImageButton homepage_btn;
    private ImageButton news_btn;
    private ImageButton personal_btn;
    private TextView homepage_text;
    private TextView news_text;
    private TextView personal_text;private Fragment homepagedatafrag;
    private Fragment newsdatafrag;
    private Fragment personaldatafrag;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maindatafragment);

        //初始化组件
        init();

        //设置初始显示fragment
        setFragment(1);
    }
    /**
     * 控制组件
     */
    private void init(){
        //控制器
        homepage_btn = (ImageButton)findViewById(R.id.homepage_btn);
        news_btn = (ImageButton)findViewById(R.id.news_btn);
        personal_btn = (ImageButton)findViewById(R.id.personal_btn);

        homepage_text = (TextView)findViewById(R.id.homepage_text);
        news_text = (TextView)findViewById(R.id.news_text);
        personal_text = (TextView)findViewById(R.id.personal_text);

        //监控器
        homepage_btn.setOnClickListener(this);
        news_btn.setOnClickListener(this);
        personal_btn.setOnClickListener(this);

        homepage_text.setOnClickListener(this);
        news_text.setOnClickListener(this);
        personal_text.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            default:
                break;

            case R.id.homepage_btn:
                setFragment(0);
                break;
            case R.id.homepage_text:
                setFragment(0);
                break;

            case R.id.news_btn:
                setFragment(1);
                break;
            case R.id.news_text:
                setFragment(1);
                break;

            case R.id.personal_btn:
                setFragment(2);
                break;
            case R.id.personal_text:
                setFragment(2);
                break;
        }
    }

    private void setFragment(int index){
        //获取Fragment管理器
        FragmentManager mFragmentManager = getSupportFragmentManager();
        //开启事务
        FragmentTransaction mTransaction = mFragmentManager.beginTransaction();
        //隐藏所有Fragment
        hideFragments(mTransaction);

        switch (index){
            default:
                break;
            case 0:
                //设置选中状态
                homepage_btn.setImageResource(R.drawable.homepage);
                homepage_btn.setBackgroundColor(getResources().getColor(R.color.fragmentbg));
                if(homepagedatafrag == null){
                    homepagedatafrag = new HomepageData();
                    mTransaction.add(R.id.container,homepagedatafrag,
                            "homepagedatafrag");
                }else{
                    mTransaction.show(homepagedatafrag);
                }

                break;
            case 1:
                news_btn.setImageResource(R.drawable.information);
                news_btn.setBackgroundColor(getResources().getColor(R.color.fragmentbg));
                Toast.makeText(this, "消息被点击", Toast.LENGTH_SHORT).show();
                if(newsdatafrag == null){
                    newsdatafrag = new NewsData();
                    mTransaction.add(R.id.container,newsdatafrag,
                            "homepagedatafrag");
                }else{
                    mTransaction.show(newsdatafrag);
                }
                break;

            case 2:
                personal_btn.setImageResource(R.drawable.mygame);
                personal_btn.setBackgroundColor(getResources().getColor(R.color.fragmentbg));
                if(personaldatafrag == null){
                    personaldatafrag = new HomepageData();
                    mTransaction.add(R.id.container,personaldatafrag,
                            "personaldatafrag");
                }else{
                    mTransaction.show(personaldatafrag);
                }
                break;
        }
        mTransaction.commit();
    }

    private void hideFragments(FragmentTransaction transaction){
        if(homepagedatafrag != null){
            //隐藏Fragment
            transaction.hide(homepagedatafrag);
        }
        if(newsdatafrag != null){
            transaction.hide(newsdatafrag);
        }
        if(personaldatafrag != null){
            transaction.hide(personaldatafrag);
            }
        }
    }

	

6.找个界面调用AllData
在这里插入图片描述

呼,完美。

展开阅读全文

Python数据分析与挖掘

01-08
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值