【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果_第1頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果_第2頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果_第3頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果_第4頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果

這篇文章主要介紹了Android如何實(shí)現(xiàn)仿微信界面的導(dǎo)航以及右上角菜單欄效果,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓在下帶著大家一起了解一下。第一步,界面。界面的思路是利用ViewPager+Fragment實(shí)現(xiàn),所以activity_main.xml中添加一個(gè)ViewPager。頂部和底部include的頂部欄和底部欄后面再說。MainActivity的界面activity_main.xml:<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<include

layout="@layout/layout_main_top"

/>

<android.support.v4.view.ViewPager

android:id="@+id/vp_mainvp"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_weight="1">

</android.support.v4.view.ViewPager>

<TextView

android:layout_width="match_parent"

android:layout_height="0.5dp"

android:background="#737373"

/>

<TextView

android:layout_width="match_parent"

android:layout_height="0.7dp"

android:background="#101010"

/>

<include

layout="@layout/layout_main_bottom"

/>

</LinearLayout>當(dāng)然,要用到ViewPager+Fragment就要建立Fragment,如圖我建了三個(gè)Fragment,這個(gè)可以根據(jù)需要自己創(chuàng)建。這三個(gè)Fragment很類似,這里寫出一個(gè),其他以此類推。package

activity;

import

android.os.Bundle;

import

android.support.v4.app.Fragment;

import

android.view.LayoutInflater;

import

android.view.View;

import

android.view.ViewGroup;

import

.money_of_my.R;

/**

*

Created

by

Chase

on

2017/2/6.

*/

public

class

Fragment_tab01

extends

Fragment

{

@Override

public

View

onCreateView(LayoutInflater

inflater,

ViewGroup

container,

Bundle

savedInstanceState)

{

View

tab01

=

inflater.inflate(R.layout.fragment_tab01_home,container,false);

return

tab01;

}

}此Fragment對(duì)應(yīng)的xml文件:<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

</LinearLayout>現(xiàn)在回到MainActivity中:package

activity;

import

...

public

class

MainActivity

extends

FragmentActivity

{

private

ViewPager

mViewPager;

private

MyFragmentPagerAdapter

mAdapter;

private

List<Fragment>

fragmentList;

//保存界面的view

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

StatusBarUtil.setWindowStatusBarColor(this,

R.color.colorTitleGray);

initViews();

initDatas();

}

/**

*

數(shù)據(jù)初始化

*/

private

void

initDatas()

{

//fragment數(shù)據(jù)源

fragmentList

=

new

ArrayList<Fragment>();

fragmentList.add(new

Fragment_tab01());

fragmentList.add(new

Fragment_tab02());

fragmentList.add(new

Fragment_tab03());

mAdapter

=

new

MyFragmentPagerAdapter(getSupportFragmentManager(),

fragmentList);

mViewPager.setAdapter(mAdapter);

}

/**

*

初始化控件

*/

private

void

initViews()

{

mViewPager

=

(ViewPager)

findViewById(R.id.vp_mainvp);

}

}需要編寫一個(gè)ViewPager的Adapter:package

utils;

import

android.support.v4.app.Fragment;

import

android.support.v4.app.FragmentManager;

import

android.support.v4.app.FragmentPagerAdapter;

import

java.util.List;

/**

*

Created

by

Chase

on

2017/2/6.

*/

public

class

MyFragmentPagerAdapter

extends

FragmentPagerAdapter

{

private

List<Fragment>

fragList;

private

List<String>

tabList;

public

MyFragmentPagerAdapter(FragmentManager

fm,

List<Fragment>

fragList)

{

super(fm);

this.fragList

=

fragList;

}

@Override

public

CharSequence

getPageTitle(int

position)

{

return

tabList.get(position);

}

@Override

public

Fragment

getItem(int

position)

{

return

fragList.get(position);

}

@Override

public

int

getCount()

{

return

fragList.size();

}

}現(xiàn)在三個(gè)Fragment已經(jīng)添加到了MainActivity中,滑動(dòng)ViewPager切換Fragment,同時(shí)底部的導(dǎo)航欄也會(huì)切換,在為ViewPager添加監(jiān)聽以前,先說說底部導(dǎo)航欄。第二步,底部導(dǎo)航。這個(gè)的切換其實(shí)就是切換準(zhǔn)備好的png圖片和改變文字的顏色。下面是剛才導(dǎo)入的底部導(dǎo)航欄xml文件:<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="52dp"

android:orientation="horizontal">

<LinearLayout

android:alpha="30"

android:id="@+id/ll_taball"

android:layout_width="match_parent"

android:layout_height="52dp"

android:background="#656d78"

android:orientation="horizontal">

<FrameLayout

android:id="@+id/fl_page_home"

android:layout_width="wrap_content"

android:layout_height="57dp"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<Button

android:id="@+id/bt_page_home"

android:layout_width="35dp"

android:layout_height="35dp"

android:layout_gravity="center_horizontal"

android:background="@drawable/home_pressed"

android:clickable="false"

/>

<TextView

android:id="@+id/tv_page_home"

android:textColor="#ffd100"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:layout_marginTop="32dp"

android:text="首頁(yè)"

/>

</FrameLayout>

<FrameLayout

android:id="@+id/fl_page_budget"

android:layout_width="wrap_content"

android:layout_height="57dp"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<Button

android:id="@+id/bt_page_budget"

android:layout_width="35dp"

android:layout_height="35dp"

android:layout_gravity="center_horizontal"

android:background="@drawable/budget"

android:clickable="false"

/>

<TextView

android:textColor="#383838"

android:id="@+id/tv_page_budget"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:layout_marginTop="32dp"

android:text="記賬"

/>

</FrameLayout>

<FrameLayout

android:id="@+id/fl_page_more"

android:layout_width="wrap_content"

android:layout_height="57dp"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<Button

android:id="@+id/bt_page_more"

android:layout_width="35dp"

android:layout_height="35dp"

android:layout_gravity="center_horizontal"

android:background="@drawable/more"

android:clickable="false"

/>

<TextView

android:id="@+id/tv_page_more"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:layout_marginTop="32dp"

android:text="更多"

/>

</FrameLayout>

</LinearLayout>

</LinearLayout>繼續(xù)回到對(duì)應(yīng)的MainActivity:并加入了按兩次回退鍵退出程序。package

activity;

import

...

public

class

MainActivity

extends

FragmentActivity

implements

View.OnClickListener

{

private

ViewPager

mViewPager;

private

MyFragmentPagerAdapter

mAdapter;

private

List<Fragment>

fragmentList;

//保存界面的view

private

FrameLayout

fl_page_home,

fl_page_budget,

fl_page_more;

private

LinearLayout

ll_taball;

private

Button

bt_page_home,

bt_page_budget,

bt_page_more;

private

TextView

tv_page_home;

private

TextView

tv_page_budget;

private

TextView

tv_page_more;

private

TextView

tv_top_title;

//onkeydown_

private

static

boolean

isQuit

=

false;

private

Timer

timer

=

new

Timer();

//onResult的碼

private

static

final

int

addActivityRequestCodeOfPage2

=

0,addActivityRequestCodeOfPage1=1;

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

StatusBarUtil.setWindowStatusBarColor(this,

R.color.colorTitleGray);

initViews();

setViewPagerEvent();

initEvents();

initDatas();

}

@Override

protected

void

onRestart()

{

super.onRestart();

}

/**

*

viewPager切換頁(yè)面的事件

*/

private

void

setViewPagerEvent()

{

//設(shè)置viewpager的page監(jiān)聽換bottom按鈕顏色

mViewPager.setOnPageChangeListener(new

ViewPager.OnPageChangeListener()

{

@Override

public

void

onPageSelected(int

position)

{

int

currentItem

=

mViewPager.getCurrentItem();

switch

(currentItem)

{

case

0:

resetImgAndTextColorAndButton();

bt_page_home.setBackgroundResource(R.drawable.home_pressed);

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("首頁(yè)");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_main_top_menu);

break;

case

1:

resetImgAndTextColorAndButton();

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("記錄");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_add_button);

break;

case

2:

resetImgAndTextColorAndButton();

bt_page_more.setBackgroundResource(R.drawable.more_pressed);

tv_page_more.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("更多");

bt_add.setVisibility(View.INVISIBLE);

break;

default:

break;

}

}

@Override

public

void

onPageScrolled(int

position,

float

positionOffset,

int

positionOffsetPixels)

{

}

@Override

public

void

onPageScrollStateChanged(int

state)

{

}

});

}

/**

*

數(shù)據(jù)初始化

*/

private

void

initDatas()

{

//fragment數(shù)據(jù)源

fragmentList

=

new

ArrayList<Fragment>();

fragmentList.add(new

Fragment_tab01());

fragmentList.add(new

Fragment_tab02());

fragmentList.add(new

Fragment_tab03());

mAdapter

=

new

MyFragmentPagerAdapter(getSupportFragmentManager(),

fragmentList);

mViewPager.setAdapter(mAdapter);

}

/**

*

初始化事件

*/

private

void

initEvents()

{

fl_page_home.setOnClickListener(this);

fl_page_budget.setOnClickListener(this);

fl_page_more.setOnClickListener(this);

bt_add.setOnClickListener(this);

}

/**

*

初始化控件

*/

private

void

initViews()

{

mViewPager

=

(ViewPager)

findViewById(R.id.vp_mainvp);

//底部的布局

fl_page_home

=

(FrameLayout)

findViewById(R.id.fl_page_home);

fl_page_budget

=

(FrameLayout)

findViewById(R.id.fl_page_budget);

fl_page_more

=

(FrameLayout)

findViewById(R.id.fl_page_more);

//底部的按鈕

bt_page_home

=

(Button)

findViewById(R.id.bt_page_home);

bt_page_budget

=

(Button)

findViewById(R.id.bt_page_budget);

bt_page_more

=

(Button)

findViewById(R.id.bt_page_more);

//按鈕對(duì)應(yīng)文字的顏色

tv_page_home

=

(TextView)

findViewById(R.id.tv_page_home);

tv_page_budget

=

(TextView)

findViewById(R.id.tv_page_budget);

tv_page_more

=

(TextView)

findViewById(R.id.tv_page_more);

//頂部狀態(tài)欄文字

tv_top_title

=

(TextView)

findViewById(R.id.tv_top_title);

ll_taball

=

(LinearLayout)

findViewById(R.id.ll_taball);

//記一筆按鈕

bt_add

=

(Button)

findViewById(R.id.bt_add);

bt_add.setVisibility(View.VISIBLE);

}

/**

*

點(diǎn)擊下面的布局按鈕事件

*

*

@param

v

*/

@Override

public

void

onClick(View

v)

{

resetImgAndTextColorAndButton();

switch

(v.getId())

{

/**

*

底部導(dǎo)航欄按鈕

*/

case

R.id.fl_page_home:

mViewPager.setCurrentItem(0);//如果首頁(yè)

切換首頁(yè)

bt_page_home.setBackgroundResource(R.drawable.home_pressed);//并將按鈕顏色點(diǎn)亮

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("首頁(yè)");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_main_top_menu);

break;

case

R.id.fl_page_budget:

mViewPager.setCurrentItem(1);

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("記錄");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_add_button);

break;

case

R.id.fl_page_more:

mViewPager.setCurrentItem(2);

bt_page_more.setBackgroundResource(R.drawable.more_pressed);

tv_page_more.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("更多");

bt_add.setVisibility(View.INVISIBLE);

break;

default:

break;

}

}

/**

*

設(shè)置所有圖片暗色和文字

*/

private

void

resetImgAndTextColorAndButton()

{

bt_page_home.setBackgroundResource(R.drawable.home);

bt_page_budget.setBackgroundResource(R.drawable.budget);

bt_page_more.setBackgroundResource(R.drawable.more);

tv_page_home.setTextColor(Color.rgb(56,

56,

56));

tv_page_budget.setTextColor(Color.rgb(56,

56,

56));

tv_page_more.setTextColor(Color.rgb(56,

56,

56));

}

/**

*

回退按鈕兩次退出

*/

@Override

public

boolean

onKeyDown(int

keyCode,

KeyEvent

event)

{

if

(keyCode

==

KeyEvent.KEYCODE_BACK)

{

if

(isQuit

==

false)

{

isQuit

=

true;

ToastUtil.showToast(getApplicationContext(),

"請(qǐng)按兩次回退鍵退出",

3000);

TimerTask

task

=

null;

task

=

new

TimerTask()

{

@Override

public

void

run()

{

isQuit

=

false;

}

};

timer.schedule(task,

2000);

}

else

{

finish();

System.exit(0);

}

}

return

true;

}

@Override

protected

void

onActivityResult(int

requestCode,

int

resultCode,

Intent

data)

{

super.onActivityResult(requestCode,

resultCode,

data);

if

(requestCode

==

addActivityRequestCodeOfPage2)

{

mViewPager.setCurrentItem(1);

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

}else

if

(requestCode==addActivityRequestCodeOfPage1){

bt_page_home.setBackgroundResource(R.drawable.home_pressed);

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

}

}

}最后加入的onActivityResult是對(duì)應(yīng)如下情況,如果在某個(gè)Fragment中對(duì)應(yīng)進(jìn)去了其他的Activity時(shí),返回以后導(dǎo)航欄是沒有之前的顯示的,所以如下就要返回原來的顯示。@Override

protected

void

onActivityResult(int

requestCode,

int

resultCode,

Intent

data)

{

super.onActivityResult(requestCode,

resultCode,

data);

if

(requestCode

==

addActivityRequestCodeOfPage2)

{

mViewPager.setCurrentItem(1);

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

}else

if

(requestCode==addActivityRequestCodeOfPage1){

bt_page_home.setBackgroundResource(R.drawable.home_pressed);

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

}

}第三步,頂部右上角菜單。之前導(dǎo)入頂部欄的xml文件:<?xml

version="1.0"

encoding="utf-8"?>

<RelativeLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="43dp"

android:background="@color/colorTitleGray">

<TextView

android:id="@+id/tv_top_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:layout_gravity="center"

android:text="首頁(yè)"

android:textColor="@color/ccd1d9white"

android:textSize="20sp"

/>

<Button

android:layout_marginRight="8dp"

android:layout_width="28dp"

android:layout_height="28dp"

android:background="@drawable/selector_main_top_menu"

android:layout_centerVertical="true"

android:layout_alignParentEnd="true"

android:id="@+id/bt_add"

/>

</RelativeLayout>對(duì)應(yīng)菜單我們使用PopupWindow。package

views;

import

...

/**

*

Created

by

Chase

on

2017/2/23.

*/

public

class

TopPopWindow

extends

PopupWindow

{

private

View

mView;

private

LinearLayout

ll_popmenu_record,ll_popmenu_book,ll_popmenu_search;

public

TopPopWindow(Activity

paramActivity,

View.OnClickListener

paramOnClickListener,

int

paramInt1,

int

paramInt2){

mView

=

LayoutInflater.from(paramActivity).inflate(R.layout.popwindow_topright,

null);

ll_popmenu_record

=

(LinearLayout)

mView.findViewById(R.id.ll_popmenu_record);

ll_popmenu_book

=

(LinearLayout)

mView.findViewById(R.id.ll_popmenu_book);

ll_popmenu_search

=

(LinearLayout)

mView.findViewById(R.id.ll_popmenu_search);

if

(paramOnClickListener

!=

null){

//設(shè)置點(diǎn)擊監(jiān)聽

ll_popmenu_record.setOnClickListener(paramOnClickListener);

ll_popmenu_book.setOnClickListener(paramOnClickListener);

ll_popmenu_search.setOnClickListener(paramOnClickListener);

setContentView(mView);

//設(shè)置寬度

setWidth(paramInt1);

//設(shè)置高度

setHeight(paramInt2);

//設(shè)置顯示隱藏動(dòng)畫

setAnimationStyle(R.style.AnimTools);

//設(shè)置背景透明

setBackgroundDrawable(new

ColorDrawable(0));

}

}

}編寫PopupWindow的xml:<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

xmlns:android="/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginRight="5dp"

android:layout_marginTop="20dp"

android:background="@drawable/popmenu"

android:orientation="vertical">

<LinearLayout

android:id="@+id/ll_popmenu_record"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="8dp"

android:paddingLeft="10dp"

android:gravity="center_vertical"

android:orientation="horizontal">

<ImageView

android:layout_width="25dp"

android:layout_height="25dp"

android:src="@mipmap/add"

/>

<TextView

android:textColor="#aab2bd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:gravity="center_vertical"

android:text="記一筆"

android:textSize="20sp"

/>

</LinearLayout>

<TextView

android:layout_width="match_parent"

android:layout_height="0.7dp"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:background="#aab2bd"

/>

<LinearLayout

android:id="@+id/ll_popmenu_book"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:layout_marginTop="8dp"

android:gravity="center_vertical"

android:orientation="horizontal"

android:layout_marginBottom="8dp">

<ImageView

android:layout_width="25dp"

android:layout_height="25dp"

android:src="@mipmap/book"

/>

<TextView

android:textColor="#aab2bd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:gravity="center_vertical"

android:text="賬本切換"

android:textSize="20sp"

/>

</LinearLayout>

<TextView

android:layout_width="match_parent"

android:layout_height="0.7dp"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:background="#aab2bd"

/>

<LinearLayout

android:id="@+id/ll_popmenu_search"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:layout_marginTop="8dp"

android:gravity="center_vertical"

android:orientation="horizontal">

<ImageView

android:layout_width="25dp"

android:layout_height="25dp"

android:src="@mipmap/search"

/>

<TextView

android:textColor="#aab2bd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dp"

android:gravity="center_vertical"

android:text="搜索賬本"

android:textSize="20sp"

/>

</LinearLayout>

</LinearLayout>回到MainActivity:package

activity;

import

android.content.Intent;

import

android.graphics.Color;

import

android.os.Bundle;

import

android.support.v4.app.Fragment;

import

android.support.v4.app.FragmentActivity;

import

android.support.v4.view.ViewPager;

import

android.view.KeyEvent;

import

android.view.View;

import

android.widget.Button;

import

android.widget.FrameLayout;

import

android.widget.LinearLayout;

import

android.widget.TextView;

import

.money_of_my.R;

import

java.util.ArrayList;

import

java.util.List;

import

java.util.Timer;

import

java.util.TimerTask;

import

utils.MyFragmentPagerAdapter;

import

utils.StatusBarUtil;

import

utils.ToastUtil;

import

views.TopPopWindow;

public

class

MainActivity

extends

FragmentActivity

implements

View.OnClickListener

{

private

ViewPager

mViewPager;

private

MyFragmentPagerAdapter

mAdapter;

private

List<Fragment>

fragmentList;

//保存界面的view

private

FrameLayout

fl_page_home,

fl_page_budget,

fl_page_more;

private

LinearLayout

ll_taball;

private

Button

bt_page_home,

bt_page_budget,

bt_page_more;

private

Button

bt_add;

private

TextView

tv_page_home;

private

TextView

tv_page_budget;

private

TextView

tv_page_more;

private

TextView

tv_top_title;

//onkeydown_

private

static

boolean

isQuit

=

false;

private

Timer

timer

=

new

Timer();

//onResult的碼

private

static

final

int

addActivityRequestCodeOfPage2

=

0,addActivityRequestCodeOfPage1=1;

private

TopPopWindow

topPopWindow;

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

StatusBarUtil.setWindowStatusBarColor(this,

R.color.colorTitleGray);

initViews();

setViewPagerEvent();

initEvents();

initDatas();

}

@Override

protected

void

onRestart()

{

super.onRestart();

}

/**

*

viewPager切換頁(yè)面的事件

*/

private

void

setViewPagerEvent()

{

//設(shè)置viewpager的page監(jiān)聽換bottom按鈕顏色

mViewPager.setOnPageChangeListener(new

ViewPager.OnPageChangeListener()

{

@Override

public

void

onPageSelected(int

position)

{

int

currentItem

=

mViewPager.getCurrentItem();

switch

(currentItem)

{

case

0:

resetImgAndTextColorAndButton();

bt_page_home.setBackgroundResource(R.drawable.home_pressed);

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("首頁(yè)");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_main_top_menu);

break;

case

1:

resetImgAndTextColorAndButton();

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("記錄");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_add_button);

break;

case

2:

resetImgAndTextColorAndButton();

bt_page_more.setBackgroundResource(R.drawable.more_pressed);

tv_page_more.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("更多");

bt_add.setVisibility(View.INVISIBLE);

break;

default:

break;

}

}

@Override

public

void

onPageScrolled(int

position,

float

positionOffset,

int

positionOffsetPixels)

{

}

@Override

public

void

onPageScrollStateChanged(int

state)

{

}

});

}

/**

*

數(shù)據(jù)初始化

*/

private

void

initDatas()

{

//fragment數(shù)據(jù)源

fragmentList

=

new

ArrayList<Fragment>();

fragmentList.add(new

Fragment_tab01());

fragmentList.add(new

Fragment_tab02());

fragmentList.add(new

Fragment_tab03());

mAdapter

=

new

MyFragmentPagerAdapter(getSupportFragmentManager(),

fragmentList);

mViewPager.setAdapter(mAdapter);

}

/**

*

初始化事件

*/

private

void

initEvents()

{

fl_page_home.setOnClickListener(this);

fl_page_budget.setOnClickListener(this);

fl_page_more.setOnClickListener(this);

bt_add.setOnClickListener(this);

}

/**

*

初始化控件

*/

private

void

initViews()

{

mViewPager

=

(ViewPager)

findViewById(R.id.vp_mainvp);

//底部的布局

fl_page_home

=

(FrameLayout)

findViewById(R.id.fl_page_home);

fl_page_budget

=

(FrameLayout)

findViewById(R.id.fl_page_budget);

fl_page_more

=

(FrameLayout)

findViewById(R.id.fl_page_more);

//底部的按鈕

bt_page_home

=

(Button)

findViewById(R.id.bt_page_home);

bt_page_budget

=

(Button)

findViewById(R.id.bt_page_budget);

bt_page_more

=

(Button)

findViewById(R.id.bt_page_more);

//按鈕對(duì)應(yīng)文字的顏色

tv_page_home

=

(TextView)

findViewById(R.id.tv_page_home);

tv_page_budget

=

(TextView)

findViewById(R.id.tv_page_budget);

tv_page_more

=

(TextView)

findViewById(R.id.tv_page_more);

//頂部狀態(tài)欄文字

tv_top_title

=

(TextView)

findViewById(R.id.tv_top_title);

ll_taball

=

(LinearLayout)

findViewById(R.id.ll_taball);

//記一筆按鈕

bt_add

=

(Button)

findViewById(R.id.bt_add);

bt_add.setVisibility(View.VISIBLE);

}

/**

*

點(diǎn)擊下面的布局按鈕事件

*

*

@param

v

*/

@Override

public

void

onClick(View

v)

{

resetImgAndTextColorAndButton();

switch

(v.getId())

{

/**

*

底部導(dǎo)航欄按鈕

*/

case

R.id.fl_page_home:

mViewPager.setCurrentItem(0);//如果首頁(yè)

切換首頁(yè)

bt_page_home.setBackgroundResource(R.drawable.home_pressed);//并將按鈕顏色點(diǎn)亮

tv_page_home.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("首頁(yè)");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_main_top_menu);

break;

case

R.id.fl_page_budget:

mViewPager.setCurrentItem(1);

bt_page_budget.setBackgroundResource(R.drawable.budget_pressed);

tv_page_budget.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("記錄");

bt_add.setVisibility(View.VISIBLE);

bt_add.setBackgroundResource(R.drawable.selector_add_button);

break;

case

R.id.fl_page_more:

mViewPager.setCurrentItem(2);

bt_page_more.setBackgroundResource(R.drawable.more_pressed);

tv_page_more.setTextColor(Color.rgb(255,

209,

0));

tv_top_title.setText("更多");

bt_add.setVisibility(View.INVISIBLE);

break;

/**

*

記一筆按鈕

*/

case

R.id.bt_add:

if

(mViewPager.getCurrentItem()

==

1)

{

Intent

intent_add_activity

=

new

Intent(getApplicationContext(),

AddRecorderActivity.class);

startActivityForResult(intent_add_activity,

addActivityRequestCodeOfPage2);

}

else

{

bt_page_home.setBackgroundResource(R.drawable.home_pressed);//并將按鈕顏色點(diǎn)亮

tv_page_home.setText

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論