版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《西廂記》讀書心得樣本(5篇)
- 課題申報(bào)參考:教育科技人才一體化理論與實(shí)踐研究
- 2025版工業(yè)換熱站設(shè)備檢修及改造合同3篇
- 2025版押金房屋買賣合同:智能家居系統(tǒng)定制版合同2篇
- 2025年度個(gè)人虛擬現(xiàn)實(shí)體驗(yàn)服務(wù)合同范本2篇
- 2024運(yùn)輸工程居間合同范本
- 二零二五年度倉(cāng)儲(chǔ)物流園區(qū)租賃合同模板3篇
- 二零二五年度旅行社脫團(tuán)游客應(yīng)急處理與責(zé)任免除合同4篇
- 二零二五年度專業(yè)賽事車輛臨時(shí)駕駛員用工合同4篇
- 2025年度智能溫室大棚建設(shè)及維護(hù)服務(wù)合同3篇
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語(yǔ)文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 氣胸病人的護(hù)理幻燈片
- 《地下建筑結(jié)構(gòu)》第二版(朱合華)中文(2)課件
- JB T 7946.1-2017鑄造鋁合金金相
- 包裝過程質(zhì)量控制
- 通用電子嘉賓禮薄
評(píng)論
0/150
提交評(píng)論