最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android在fragment中編寫toobar的步驟詳解

 更新時(shí)間:2021年01月14日 14:23:39   作者:qq_45973003  
這篇文章主要介紹了Android在fragment中編寫toobar,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

第一步的話就是首先導(dǎo)入我們的依賴的包:

compile 'com.android.support:appcompat-v7:23.3.0'

第二步的話就是準(zhǔn)備我們的布局文件和我們的item
在這的話我是將我們的toobar單獨(dú)的放在一個(gè)布局文件中的方便以后的調(diào)用以及將我們的主題改為
我們noactionbar,同時(shí)在我們的主文件中進(jìn)行引用
修改為nopactionbar

在這里插入圖片描述

引用

在這里插入圖片描述

設(shè)置單獨(dú)的xml文件

在這里插入圖片描述

然后的話就是我們?cè)谖覀兊倪@個(gè)位置設(shè)置的是我們的啊就是toobar的單獨(dú)的一個(gè)文件代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/toobar"
 android:background="#00E109"
 android:minHeight="?attr/actionBarSize"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">
<!--現(xiàn)在的這個(gè)位置的話是我們的toobar的工具類我們將toobar
的工具類創(chuàng)建出來后就是方便在我們的程序要用到的任何的地方調(diào)用-->

</androidx.appcompat.widget.Toolbar>

第三步: 然后的話就是編寫我們的就是啊item就是我們的菜單項(xiàng)

在這里插入圖片描述

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto">
 <item
  android:icon="@drawable/ic_baseline_youtube_searched_for_24"
  android:id="@+id/search"
  android:title="搜索"
  android:orderInCategory="80"
  app:showAsAction="ifRoom"
  />
 <item
  android:icon="@drawable/ic_sharp_share_24"
  android:id="@+id/share"
  android:title="分享"
  android:orderInCategory="80"
  app:showAsAction="ifRoom"
  />
 <item
  android:icon="@drawable/ic_baseline_drag_indicator_24"
  android:id="@+id/other"
  android:title="更多"
  android:orderInCategory="80"
  app:showAsAction="ifRoom"
  />
</menu>

然后的話是我們的就是frgment的布局的代碼中進(jìn)行引用:

在這里插入圖片描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
 android:orientation="vertical"
 tools:context=".ui.home.HomeFragment">
<!--這個(gè)位置的話是那我們的首頁面的布局文件然后的話就是實(shí)現(xiàn)我們的首頁面的功能
 todo 使用線性布局,然后的話是我們的就是搜索框
-->
<!-- todo 在我們的這個(gè)位置就是將我們的toobar引入進(jìn)來-->
 <include layout="@layout/toobarutil"/>

<!--todo 使用我們的scrollview進(jìn)行布局-->
 <androidx.core.widget.NestedScrollView
  android:layout_width="match_parent"
  android:layout_height="match_parent">
   <LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.appcompat.widget.SearchView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     tools:ignore="MissingConstraints" />
<!--todo 在我們的這里的話使用我們的banner和我們的glide實(shí)現(xiàn)我們男的圖片的輪播-->
    <com.youth.banner.Banner
     android:id="@+id/Banner"
     android:layout_width="match_parent"
     android:layout_height="250dp" />
   </LinearLayout>
 </androidx.core.widget.NestedScrollView>

</LinearLayout>

最后的話就是我們的java代碼部分了:

在這里插入圖片描述

package com.example.smartcityend.ui.home;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SurfaceControl;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import com.bumptech.glide.Glide;
import com.example.smartcityend.BuildConfig;
import com.example.smartcityend.R;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class HomeFragment extends Fragment implements OnBannerListener {


 private Banner banner;
 private Toolbar toolbar;

 public View onCreateView(@NonNull LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
  View root = inflater.inflate(R.layout.fragment_home, container, false);
  return root;
 }
 //todo 接下來的話實(shí)現(xiàn)我們的圖片的輪播使用我們的banner,在我們的就是onviewcreate中編寫我們的代碼

 @Override
 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
  super.onViewCreated(view, savedInstanceState);
  Banner(); // 調(diào)用輪播的方法

  Toobar(); // 調(diào)用toobar的方法

 }

 @Override
 public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
  ((AppCompatActivity) getActivity()).getMenuInflater().inflate(R.menu.toobar_title,menu);
   return ;
   // todo 這個(gè)方法也是伴隨著我們的就是toobar存在的作用就是在我們的onsetmenuitemclickn的回調(diào)

 }

 private void Toobar() {
  // 接下來的話就是調(diào)用我們的toobar的方法 找到我們的toobar的id
  toolbar = (Toolbar) getActivity().findViewById(R.id.toobar);
  // 調(diào)用actionbar的方法將actionbar設(shè)置為自己的toobar
  setHasOptionsMenu(true);
  ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
  // 獲取actionbar的對(duì)象使用action的方法
  ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  // 然后的話就是設(shè)置我們的toobar的主題等
  toolbar.setTitle("首頁");
  // 設(shè)置我們的副標(biāo)題
  toolbar.setSubtitle("智慧城市");
  // 設(shè)置我們的導(dǎo)航菜單
  toolbar.setNavigationIcon(R.drawable.ic_baseline_chevron_left_24);
  // 然后的話為我們的導(dǎo)航菜單添加點(diǎn)擊事件
  toolbar.setNavigationOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    // 然后的話就是為我們的返回圖標(biāo)添加點(diǎn)擊事件這里的話我們就為我們的返回圖標(biāo)添加點(diǎn)擊返回事件

   }
  });
  // 設(shè)置菜單的就是啊彈出的樣式和背景
  toolbar.setPopupTheme(R.style.Widget_AppCompat_ActionBar_Solid);
  // 設(shè)置我們的菜單 todo 要另外在我們的菜單的布局文件中添加我們的就是啊xml布局
  toolbar.inflateMenu(R.menu.bottom_nav_menu);
  // 然后的話就是為我們的啊查菜單項(xiàng)設(shè)置點(diǎn)擊事件
  toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
   @Override
   public boolean onMenuItemClick(MenuItem item) {
    // 然后的話就是為我們的菜單項(xiàng)設(shè)置我們的點(diǎn)擊監(jiān)聽事件
    switch (item.getItemId()){
     case R.id.search:
      Toast.makeText( getContext(),"你點(diǎn)擊的是搜索按鈕", Toast.LENGTH_SHORT).show();
      break;
     case R.id.share:
      Toast.makeText(getActivity(),"你點(diǎn)擊的是分享按鈕",Toast.LENGTH_LONG).show();
      break;
     case R.id.other:
      Toast.makeText(getActivity(),"謝謝分享",Toast.LENGTH_LONG).show();
      break;
     default:
    }
    return true;
   }
  });
 }

 private void Banner(){
  // todo step1: 找到我們的就是id,轉(zhuǎn)換 為成員變量方便在其他的位置調(diào)用
  banner = (Banner) getActivity().findViewById(R.id.Banner);
  // 創(chuàng)建我們的存放圖片的數(shù)組將我們的圖片存放進(jìn)去
  int[] images = new int[]{
   // 在我們的這個(gè)位置存放我們的圖片
   R.mipmap.banner1,R.mipmap.banner2,R.mipmap.banner3,R.mipmap.banner4,R.mipmap.banner5
  };
  // 創(chuàng)建我們的列表放置我們的圖片的信息
  List<Integer> iamgesList = new ArrayList<>();
  // 然后的話就是使用我們的數(shù)組添加我們的圖片的信息
  for(int i = 0; i<images.length; i++){
   iamgesList.add(images[i]); // 將我們男的圖片添加到我們的列表中
   // 設(shè)置我們的圖片加載器
   banner.setImageLoader(new ImageLoader() {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
     // 圖片加載器
     Glide.with(getActivity()).load(path).into(imageView);
    }
   });
   // 然后的話就是我們的banner和我們的隔離的自帶的圖片輪播效果
   banner.setBannerAnimation(Transformer.Default);
   // 將我們的圖片從列表中加載進(jìn)來
   banner.setImages(iamgesList);
   // 設(shè)置我們的顯示器的位置
   banner.setIndicatorGravity(BannerConfig.CENTER);
   // 然后的話就是設(shè)置我們的切換的間隔時(shí)間
   banner.setDelayTime(5000);
   // 設(shè)置我們的輪播監(jiān)聽事件
   banner.setOnBannerListener(this);
   //然后的話就是我們的圖片的輪播自動(dòng)開始
   banner.start();

  }
 }

 // todo 在我們的這個(gè)位置重寫我們的onstart和onstop方法 banner

  @Override
  public void onStart() {
  super.onStart();
  // 開始
  banner.startAutoPlay();
 }

  @Override
  public void onStop() {
  super.onStop();
  // 停止
  banner.stopAutoPlay();
 }

 @Override
 public void OnBannerClick(int position) {
  // 設(shè)置我們的輪播圖的點(diǎn)擊提示
  Toast.makeText(getActivity(),"你點(diǎn)擊了第"+(position+1)+"張輪播圖",Toast.LENGTH_LONG).show();
 }
}

// todo 好現(xiàn)在的話我們可以看到我們的搜索框模塊和我們的輪播圖的模塊是已經(jīng)創(chuàng)建完成了現(xiàn)在的話就是開始封裝我們的就是toobar模塊讓我們的toobar模塊可以在我們的各處調(diào)用

在這里插入圖片描述

到此這篇關(guān)于Android在fragment中編寫toobar的步驟詳解的文章就介紹到這了,更多相關(guān)Android fragment toobar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android計(jì)步功能的實(shí)現(xiàn)代碼

    Android計(jì)步功能的實(shí)現(xiàn)代碼

    本篇文章主要介紹了Android計(jì)步功能的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Flutter?頁面跳轉(zhuǎn)和傳值的實(shí)現(xiàn)

    Flutter?頁面跳轉(zhuǎn)和傳值的實(shí)現(xiàn)

    跳轉(zhuǎn)傳值是再普通不過的小功能了,在開發(fā)中會(huì)經(jīng)常用到,比如列表進(jìn)入詳情,本文主要介紹了Flutter?頁面跳轉(zhuǎn)和傳值的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Android 系統(tǒng)簽名 keytool-importkeypair的操作步驟

    Android 系統(tǒng)簽名 keytool-importkeypair的操作步驟

    本文介紹了在Android項(xiàng)目中使用系統(tǒng)簽名并打包APK的方法,步驟包括獲取系統(tǒng)簽名文件、修改AndroidManifest.xml、轉(zhuǎn)換簽名文件、配置Android Studio簽名、生成APK文件和打包APK,感興趣的朋友一起看看吧
    2025-01-01
  • Android?Studio中如何修改APP圖標(biāo)和APP名稱

    Android?Studio中如何修改APP圖標(biāo)和APP名稱

    這篇文章主要介紹了Android?Studio中如何修改APP圖標(biāo)和APP名稱,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Android?ViewPager2?+?Fragment?聯(lián)動(dòng)效果的實(shí)現(xiàn)思路

    Android?ViewPager2?+?Fragment?聯(lián)動(dòng)效果的實(shí)現(xiàn)思路

    這篇文章主要介紹了Android?ViewPager2?+?Fragment?聯(lián)動(dòng),本篇主要介紹一下 ViewPager2 + Fragment聯(lián)動(dòng)效果的實(shí)現(xiàn)思路,需要的朋友可以參考下
    2022-12-12
  • 深入了解Android中GestureDetector的定義與使用

    深入了解Android中GestureDetector的定義與使用

    Android中的GestureDetector?可以使用?MotionEvents?檢測(cè)各種手勢(shì)和事件,非常的好用。本文將會(huì)通過幾個(gè)具體的例子來講解一下GestureDetector的具體使用方法,需要的可以參考一下
    2023-01-01
  • Android 自定義View實(shí)現(xiàn)計(jì)時(shí)文字詳解

    Android 自定義View實(shí)現(xiàn)計(jì)時(shí)文字詳解

    這篇文章主要為大家介紹了Android 自定義View實(shí)現(xiàn)計(jì)時(shí)文字詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 淺談Android中多線程切換的幾種方法

    淺談Android中多線程切換的幾種方法

    本篇文章主要介紹了淺談Android中多線程切換的幾種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • Android設(shè)置Activity背景為透明style的簡(jiǎn)單方法(必看)

    Android設(shè)置Activity背景為透明style的簡(jiǎn)單方法(必看)

    下面小編就為大家?guī)硪黄狝ndroid設(shè)置Activity背景為透明style的簡(jiǎn)單方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Android實(shí)現(xiàn)NFC讀取校園卡

    Android實(shí)現(xiàn)NFC讀取校園卡

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)NFC讀取校園卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論

乌鲁木齐县| 玉山县| 巴东县| 金沙县| 策勒县| 五峰| 同德县| 肃北| 赤水市| 鹤壁市| 正蓝旗| 崇信县| 榕江县| 钟山县| 临江市| 六盘水市| 察隅县| 兰溪市| 乌兰县| 新密市| 页游| 清远市| 黔南| 新巴尔虎左旗| 商洛市| 鹤庆县| 和田县| 都江堰市| 上犹县| 清流县| 怀远县| 都江堰市| 晋城| 皋兰县| 南郑县| 宁武县| 雷山县| 桐乡市| 清河县| 鄂尔多斯市| 衡阳市|