package com.lotaai.canguiayw;
|
|
import android.content.Intent;
|
import android.graphics.Color;
|
import android.os.Bundle;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.Button;
|
import android.widget.ImageButton;
|
import android.widget.LinearLayout;
|
|
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.viewpager.widget.ViewPager;
|
|
import com.lotaai.canguiayw.device.DeviceMessage;
|
import com.lotaai.canguiayw.device.MessageType;
|
|
import org.greenrobot.eventbus.EventBus;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class ManageActivity extends FragmentActivity implements View.OnClickListener {
|
private ViewPager viewPager;
|
private FragmentPagerAdapter mAdapter;
|
private List<Fragment> mFragments = new ArrayList<Fragment>();
|
|
private LinearLayout mTabCunCan;
|
private LinearLayout mTabOpenDoor;
|
private LinearLayout mTabSelect;
|
private LinearLayout mTabSetting;
|
|
private Button mCunCanImg;
|
private Button mOpenDoorImg;
|
private Button mSelectImg;
|
private Button mSettingImg;
|
|
Fragment tabcuncan;
|
Fragment tabOpenDoor;
|
Fragment tabSelect;
|
Fragment tabsetting;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
setContentView(R.layout.activity_manage);
|
initView();
|
initEvent();
|
}
|
|
private void initView() {
|
viewPager = (ViewPager) findViewById(R.id.container);
|
mTabCunCan = (LinearLayout) findViewById(R.id.id_tab_cuncan);
|
mTabOpenDoor = (LinearLayout) findViewById(R.id.id_tab_opendoor);
|
mTabSelect = (LinearLayout) findViewById(R.id.id_tab_select);
|
mTabSetting = (LinearLayout) findViewById(R.id.id_tab_setting);
|
|
mCunCanImg = findViewById(R.id.id_tab_cuncan_btn);
|
mOpenDoorImg = findViewById(R.id.id_tab_opendoor_btn);
|
mSelectImg = findViewById(R.id.id_tab_select_btn);
|
mSettingImg = findViewById(R.id.id_tab_setting_btn);
|
|
tabcuncan = new CunCanFragment();
|
tabOpenDoor = new OpenDoorFragment();
|
tabSelect = new SelectFragment();
|
tabsetting = new SettingFragment();
|
|
// mFragments.add(tabcuncan);
|
//mFragments.add(tabOpenDoor);
|
// mFragments.add(tabSelect);
|
mFragments.add(tabsetting);
|
|
mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
|
|
@Override
|
public int getCount() {
|
return mFragments.size();
|
}
|
|
@Override
|
public Fragment getItem(int arg0) {
|
return mFragments.get(arg0);
|
}
|
};
|
viewPager.setAdapter(mAdapter);
|
|
viewPager.setCurrentItem(0);
|
mCunCanImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mCunCanImg.setTextColor(Color.parseColor("#000000"));
|
}
|
|
private void initEvent() {
|
// 设置事件
|
mTabCunCan.setOnClickListener(this);
|
mTabOpenDoor.setOnClickListener(this);
|
mTabSelect.setOnClickListener(this);
|
mTabSetting.setOnClickListener(this);
|
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
@Override
|
public void onPageSelected(int arg0) {
|
//当前选中的Fragment 下标
|
int currentItem = viewPager.getCurrentItem();
|
//把图片全设置为暗的
|
resetImg();
|
switch (currentItem) {
|
case 0:
|
mCunCanImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mCunCanImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 1:
|
mOpenDoorImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mOpenDoorImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 2:
|
mSelectImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mSelectImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 3:
|
mSettingImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mSettingImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
default:
|
break;
|
}
|
}
|
|
@Override
|
public void onPageScrolled(int arg0, float arg1, int arg2) {
|
|
}
|
|
@Override
|
public void onPageScrollStateChanged(int arg0) {
|
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
resetImg();
|
switch (v.getId()) {
|
case R.id.id_tab_cuncan:
|
setSelect(0);
|
break;
|
case R.id.id_tab_opendoor:
|
setSelect(1);
|
break;
|
case R.id.id_tab_select:
|
setSelect(2);
|
break;
|
case R.id.id_tab_setting:
|
setSelect(3);
|
break;
|
default:
|
break;
|
}
|
}
|
|
private void setSelect(int i) {
|
//改变内容区域,把图片设置为亮的
|
switch (i) {
|
case 0:
|
mCunCanImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mCunCanImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 1:
|
mOpenDoorImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mOpenDoorImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 2:
|
mSelectImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mSelectImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
case 3:
|
mSettingImg.setBackgroundResource(R.drawable.tab_btn_pressed);
|
mSettingImg.setTextColor(Color.parseColor("#000000"));
|
break;
|
default:
|
break;
|
}
|
//切换Fragment
|
viewPager.setCurrentItem(i);
|
}
|
|
//将所有的图片都变暗
|
private void resetImg() {
|
mCunCanImg.setBackgroundResource(R.drawable.tab_btn_normal);
|
mCunCanImg.setTextColor(Color.parseColor("#ffffff"));
|
mOpenDoorImg.setBackgroundResource(R.drawable.tab_btn_normal);
|
mOpenDoorImg.setTextColor(Color.parseColor("#ffffff"));
|
mSelectImg.setBackgroundResource(R.drawable.tab_btn_normal);
|
mSelectImg.setTextColor(Color.parseColor("#ffffff"));
|
mSettingImg.setBackgroundResource(R.drawable.tab_btn_normal);
|
mSettingImg.setTextColor(Color.parseColor("#ffffff"));
|
}
|
|
public void backMian(View view){
|
DeviceMessage message = new DeviceMessage();
|
message.setMessageType(MessageType.FANHUI.ordinal());
|
EventBus.getDefault().post(message);
|
finish();
|
}
|
|
public interface MyTouchListener {
|
public void onTouchEvent(MotionEvent event);
|
}
|
|
// 保存MyTouchListener接口的列表
|
private ArrayList<MyTouchListener> myTouchListeners = new ArrayList<ManageActivity.MyTouchListener>();
|
|
/**
|
* 提供给Fragment通过getActivity()方法来注册自己的触摸事件的方法
|
* @param listener
|
*/
|
public void registerMyTouchListener(MyTouchListener listener) {
|
myTouchListeners.add(listener);
|
}
|
|
/**
|
* 提供给Fragment通过getActivity()方法来取消注册自己的触摸事件的方法
|
* @param listener
|
*/
|
public void unRegisterMyTouchListener(MyTouchListener listener) {
|
myTouchListeners.remove( listener );
|
}
|
|
/**
|
* 分发触摸事件给所有注册了MyTouchListener的接口
|
*/
|
@Override
|
public boolean dispatchTouchEvent(MotionEvent ev) {
|
for (MyTouchListener listener : myTouchListeners) {
|
listener.onTouchEvent(ev);
|
}
|
return super.dispatchTouchEvent(ev);
|
}
|
}
|