亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

詳解Xamarin.Android 利用Fragment實現底部菜單

2019-10-21 21:25:12
字體:
來源:轉載
供稿:網友

本篇文章主要介紹了詳解Xamarin.Android 利用Fragment實現底部菜單,分享給大家,具體如下:

效果圖:

Xamarin,Android,Fragment,底部菜單

第一步:添加引用

引用 Crosslight.Xamarin.Android.Support.v7.AppCompat 這個包。

Xamarin,Android,Fragment,底部菜單

第二步:繪制Main和Fragment界面

fg_home.axml

<?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="match_parent"  android:background="#FFFFFF">  <TextView    android:id="@+id/txt_content"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:text="首頁"    android:textColor="#000000"    android:textSize="20sp" /></LinearLayout>

fg_label.axml

<?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="match_parent"  android:background="#FFFFFF">  <TextView    android:id="@+id/txt_content"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:text="貼簽"    android:textColor="#000000"    android:textSize="20sp" /></LinearLayout>

fg_mine.axml

<?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="match_parent"  android:background="#FFFFFF">  <TextView    android:id="@+id/txt_content"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:text="我的"    android:textColor="#000000"    android:textSize="20sp" /></LinearLayout>

fg_query.axml

<?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="match_parent"  android:background="#FFFFFF">  <TextView    android:id="@+id/txt_content"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:text="查詢"    android:textColor="#000000"    android:textSize="20sp" /></LinearLayout>

Main.axml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">   <include    layout="@layout/main_left" /></LinearLayout>

main_left.xml

 

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/dl_left"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="#f0f0f0"> <!--主布局--> <LinearLayout   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="horizontal">   <RelativeLayout  android:layout_width="match_parent"  android:layout_height="match_parent"  android:id="@+id/relativelayout1"    android:fitsSystemWindows="true">   <RelativeLayout     android:id="@+id/ly_top_bar"     android:layout_width="match_parent"     android:layout_height="48dp"      android:visibility="gone">    </RelativeLayout>   <LinearLayout      android:id="@+id/ly_tab_bar"      android:layout_width="match_parent"      android:layout_height="50dp"      android:layout_alignParentBottom="true"       android:background="#FFFFFF"       android:orientation="vertical">    <View      android:layout_width="match_parent"      android:layout_height="2px"      android:background="#cccccc" />    <LinearLayout      android:layout_width="match_parent"      android:layout_height="40dp"      android:orientation="horizontal"      android:layout_marginTop="5dp">     <ImageView       android:id="@+id/iv_home"      android:layout_width="25.6dp"      android:layout_height="37.6dp"      android:src="@drawable/icon_home1"      android:layout_weight="1"/>     <ImageView       android:id="@+id/iv_query"      android:layout_width="25.6dp"      android:layout_height="37.6dp"      android:src="@drawable/icon_query1"      android:layout_weight="1"/>     <ImageView       android:id="@+id/iv_label"     android:layout_width="25.6dp"      android:layout_height="37.6dp"      android:src="@drawable/icon_label1"      android:layout_weight="1"/>     <ImageView       android:id="@+id/iv_mine"      android:layout_width="25.6dp"      android:layout_height="37.6dp"      android:src="@drawable/icon_mine1"      android:layout_weight="1"/>     </LinearLayout>   </LinearLayout>   <View     android:id="@+id/div_tab_bar"     android:layout_width="match_parent"     android:layout_height="2px"     android:background="#FFFFFF"     android:layout_above="@id/ly_tab_bar" />   <FrameLayout     android:layout_width="match_parent"     android:layout_height="match_parent"      android:id="@+id/fy_home"     android:layout_below="@id/ly_top_bar"     android:layout_above="@id/div_tab_bar" />   <FrameLayout     android:layout_width="match_parent"     android:layout_height="match_parent"     android:id="@+id/fy_query"      android:layout_below="@id/ly_top_bar"     android:layout_above="@id/div_tab_bar"/>   <FrameLayout     android:layout_width="match_parent"     android:layout_height="match_parent"     android:id="@+id/fy_label"      android:layout_below="@id/ly_top_bar"     android:layout_above="@id/div_tab_bar"/>   <FrameLayout     android:layout_width="match_parent"     android:layout_height="match_parent"     android:id="@+id/fy_mine"      android:layout_below="@id/ly_top_bar"     android:layout_above="@id/div_tab_bar"/>  </RelativeLayout> </LinearLayout> </android.support.v4.widget.DrawerLayout>

第三步:在value文件下創建Style,并且自定義 BaseAppTheme 樣式

<?xml version="1.0" encoding="utf-8" ?><resources>    <color name="primary">#1e89e7</color> <color name="primaryDark">#1976d2</color> <color name="red">#ff0000</color> <color name="white">#ffffff</color> <style name="BaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">  <item name="windowActionBar">false</item>  <item name="windowNoTitle">true</item>  <item name="colorPrimary">@color/primary</item>  <item name="colorPrimaryDark">@color/primaryDark</item>  <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item> </style> <style name="AppTheme.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle">  <item name="color">@android:color/white</item> </style></resources>

第四步:編寫每個Fragment的后臺,這里只寫一個。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Util;using Android.Views;using Android.Widget;namespace BottomMuneDemo.Fragments{  public class HomeFragment : Fragment  {    private string content { get; set; }    public HomeFragment(string content)    {      this.content = content;    }    public override void OnCreate(Bundle savedInstanceState)    {      base.OnCreate(savedInstanceState);      // Create your fragment here    }    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)    {      View view = inflater.Inflate(Resource.Layout.fg_home, container, false);      TextView txt_content = (TextView)view.FindViewById(Resource.Id.txt_content);      txt_content.Text = "首頁";      return view;    }  }}

第五步:在Main活動中進行設置。

using Android.App;using Android.Widget;using Android.OS;using Android.Support.V7.App;using BottomMuneDemo.Fragments;using Android.Views;namespace BottomMuneDemo{  [Activity(Label = "BottomMuneDemo", MainLauncher = true, Theme = "@style/BaseAppTheme")]  public class MainActivity : AppCompatActivity  {    private ImageView iv_home;    private ImageView iv_query;    private ImageView iv_label;    private ImageView iv_mine;    private FrameLayout fy_home;    private FrameLayout fy_query;    private FrameLayout fy_label;    private FrameLayout fy_mine;    HomeFragment fg1;    QueryFragment fg2;    LabelFragment fg3;    MineFragment fg4;    protected override void OnCreate(Bundle savedInstanceState)    {      base.OnCreate(savedInstanceState);       SetContentView(Resource.Layout.Main);      fy_home = (FrameLayout)FindViewById(Resource.Id.fy_home);      fy_query = (FrameLayout)FindViewById(Resource.Id.fy_query);      fy_label = (FrameLayout)FindViewById(Resource.Id.fy_label);      fy_mine = (FrameLayout)FindViewById(Resource.Id.fy_mine);      iv_home = (ImageView)FindViewById(Resource.Id.iv_home);      iv_query = (ImageView)FindViewById(Resource.Id.iv_query);      iv_label = (ImageView)FindViewById(Resource.Id.iv_label);      iv_mine = (ImageView)FindViewById(Resource.Id.iv_mine);      bindViews();      iv_home.PerformClick();    }    #region 底部菜單選項卡     //ui組件初始化與事件綁定    private void bindViews()    {      iv_home.Click += (s, e) => { onClick(iv_home); };      iv_query.Click += delegate { onClick(iv_query); };      iv_label.Click += delegate { onClick(iv_label); };      iv_mine.Click += delegate { onClick(iv_mine); };    }    //隱藏所有Fragment    private void hideAllFragment(FragmentTransaction fragmentTransaction)    {      if (fg1 != null) fragmentTransaction.Hide(fg1);      if (fg2 != null) fragmentTransaction.Hide(fg2);      if (fg3 != null) fragmentTransaction.Hide(fg3);      if (fg4 != null) fragmentTransaction.Hide(fg4);      iv_home.SetImageResource(Resource.Drawable.icon_home1);      iv_query.SetImageResource(Resource.Drawable.icon_query1);      iv_label.SetImageResource(Resource.Drawable.icon_label1);      iv_mine.SetImageResource(Resource.Drawable.icon_mine1);    }    //重置所有文本的選中狀態    private void setSelected()    {      iv_home.Selected = false;      iv_query.Selected = false;      iv_label.Selected = false;      iv_mine.Selected = false;    }    //單擊事件    public void onClick(View v)    {      FragmentTransaction fTransaction = FragmentManager.BeginTransaction();      hideAllFragment(fTransaction);      switch (v.Id)      {        case Resource.Id.iv_home:          setSelected();          iv_home.Selected = true;          iv_home.SetImageResource(Resource.Drawable.icon_home2);          if (fg1 == null)          {            fg1 = new HomeFragment("首頁");            fTransaction.Add(Resource.Id.fy_home, fg1);          }          else { fTransaction.Show(fg1); }          break;        case Resource.Id.iv_query:          setSelected();          iv_query.Selected = true;          iv_query.SetImageResource(Resource.Drawable.icon_query2);          if (fg2 == null)          {            fg2 = new QueryFragment("查詢");            fTransaction.Add(Resource.Id.fy_query, fg2);          }          else { fTransaction.Show(fg2); }          break;        case Resource.Id.iv_label:          setSelected();          iv_label.Selected = true;          iv_label.SetImageResource(Resource.Drawable.icon_label2);          if (fg3 == null)          {            fg3 = new LabelFragment("貼簽");            fTransaction.Add(Resource.Id.fy_label, fg3);          }          else { fTransaction.Show(fg3); }          break;        case Resource.Id.iv_mine:          setSelected();          iv_mine.Selected = true;          iv_mine.SetImageResource(Resource.Drawable.icon_mine2);          if (fg4 == null)          {            fg4 = new MineFragment("我的");            fTransaction.Add(Resource.Id.fy_mine, fg4);          }          else { fTransaction.Show(fg4); }          break;      }      fTransaction.Commit();    }    #endregion   }}

到這里就結束了,親測代碼有效,如有問題請留言。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近2019中文字幕一页二页| 欧美日韩精品在线| 亚洲国产毛片完整版| 午夜免费久久久久| 91高清视频免费| 国产日韩欧美91| 亚洲成人动漫在线播放| 亚洲电影免费观看高清完整版在线观看| 欧美一级成年大片在线观看| 日韩电影免费在线观看| 国产小视频国产精品| 亚洲美女激情视频| 欧美日韩国产页| 91国内免费在线视频| 欧美精品激情视频| 国产精品黄视频| 国产成人aa精品一区在线播放| 亚洲性av网站| 欧美激情高清视频| 欧美日韩国产va另类| 久久精品国产亚洲精品| 亚洲精品日韩激情在线电影| 91成人精品网站| 国产精品对白刺激| 久久久精品视频在线观看| 欧美电影在线观看高清| 欧美精品一区在线播放| 欧美日韩在线第一页| 久久97精品久久久久久久不卡| 中文字幕精品av| 成人黄色片在线| 91精品在线一区| 北条麻妃一区二区三区中文字幕| 久久精品99国产精品酒店日本| 日韩欧美国产一区二区| 精品国产91乱高清在线观看| 美女撒尿一区二区三区| 中文日韩在线视频| 亚洲国产精品大全| 91社区国产高清| 国产精品欧美亚洲777777| 91精品国产综合久久香蕉922| 亚洲精品视频久久| 亚洲自拍高清视频网站| 国产欧美一区二区三区在线看| 国产精品成av人在线视午夜片| 久久久最新网址| 欧美日韩亚洲视频| 国产精品三级久久久久久电影| 亚洲欧洲日本专区| 欧美限制级电影在线观看| 美女久久久久久久久久久| 国产在线视频2019最新视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲欧美日韩精品久久亚洲区| 国产成人精品久久| 日韩视频永久免费观看| 96精品久久久久中文字幕| 国产美女直播视频一区| 久久亚洲国产精品成人av秋霞| 日韩视频欧美视频| 久久中文精品视频| 亚洲欧美第一页| 国产精品露脸自拍| 日本欧美爱爱爱| 亚洲欧美国产精品va在线观看| 欧美影院在线播放| 全球成人中文在线| 97在线观看免费高清| 国产精品久久久久久久av大片| 96sao精品视频在线观看| 欧美激情欧美激情| 日韩欧美中文免费| 午夜免费日韩视频| 欧美激情网站在线观看| 亚洲成色999久久网站| 97久久精品人人澡人人爽缅北| 中文字幕日韩欧美精品在线观看| 欧日韩不卡在线视频| 欧美日韩中文在线| 亚洲xxxx视频| 国产69精品久久久久久| 精品久久久久久久久久久久| 日韩欧美在线字幕| 日韩欧美有码在线| 欧美成人精品不卡视频在线观看| 久久成人精品一区二区三区| 日韩中文字幕在线看| 日韩成人在线视频观看| 国产精品成人aaaaa网站| 伊人久久大香线蕉av一区二区| 久久av资源网站| 国产午夜精品全部视频播放| 国产亚洲精品久久久| 亚洲精品www久久久久久广东| 亚洲成人在线视频播放| 亚洲aⅴ男人的天堂在线观看| 92裸体在线视频网站| 国产精品爱啪在线线免费观看| 蜜月aⅴ免费一区二区三区| 欧美精品在线播放| 亚洲丁香婷深爱综合| 日本高清+成人网在线观看| 中文字幕综合一区| 九九久久久久99精品| 国产精品久久久久久亚洲影视| 91亚洲午夜在线| 青青久久av北条麻妃黑人| 亚洲国产精品福利| 亚洲欧美日韩国产成人| 成人性生交大片免费看视频直播| 国产亚洲一区二区在线| 57pao国产成人免费| 久热精品在线视频| 亚洲第一精品自拍| 欧美丝袜一区二区三区| 亚洲国产另类 国产精品国产免费| 亚洲视频axxx| 亚洲va久久久噜噜噜| 欧美性视频网站| 日韩成人网免费视频| 国产精品香蕉在线观看| 欧美一二三视频| 精品成人国产在线观看男人呻吟| 国产精品综合网站| 国产97在线视频| 中日韩美女免费视频网址在线观看| 欧美大片在线看| 精品女厕一区二区三区| 久久久久久久久久久免费精品| 91av视频在线| 国产精品www色诱视频| 亚洲午夜av久久乱码| 日韩中文av在线| 美女性感视频久久久| 久久久久久久久爱| 视频在线观看一区二区| 成人黄色大片在线免费观看| www.日韩不卡电影av| 亚洲一区二区三区视频播放| 精品一区电影国产| 91九色国产视频| 国产精品久久久久久久久久尿| 日韩欧美在线观看视频| 青青草原成人在线视频| 亚洲毛茸茸少妇高潮呻吟| 91免费综合在线| www.日韩系列| 国产欧美韩国高清| 成人免费观看49www在线观看| 国产精品久久久久久超碰| 亚洲精品久久久久中文字幕二区| 亚洲欧美在线免费| 一本色道久久88综合日韩精品| 亚洲一区二区精品| 欧美激情亚洲一区| 欧美精品电影免费在线观看| 在线观看国产精品91| 国产精品一区二区三区久久久| 国产精品久久99久久| 91夜夜揉人人捏人人添红杏| 成人久久久久爱| 欧美黄色三级网站| 国产亚洲欧美日韩美女|