Commit f699e909 by 宁斌

1、替换vp到vp2 1、餐台页分拆

parent 29e0b2b3
......@@ -202,7 +202,7 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
} else if (info.getErrCode().equals("restaurant.operation.0007")) {
SendSettlement.DataBean data = info.getData();
if (data != null) {
showSettlementErrorDialog(info.getErrMsg() + ",清機失敗,仍有訂單未完結,請先結賬\n" + data.getOrderNo());
showSettlementErrorDialog(info.getErrMsg() + ",未完結訂單號\n" + data.getOrderNo());
}
} else {
if (!TextUtils.isEmpty(info.getErrMsg())) {
......
......@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import io.reactivex.Flowable;
import io.reactivex.Single;
......
......@@ -17,6 +17,7 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Flowable;
import io.reactivex.Single;
......
......@@ -36,7 +36,9 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriberOfFlowable;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.MODIFIER_TYPE;
......@@ -217,9 +219,41 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
//获取数据
mModel.queryDB_ModifierByModModTasteVisibleQueryBuilder()
.doOnError(new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
mFineItemOneList.clear();
}
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
// @Override
// public void onError(Throwable t) {
// super.onError(t);
// }
//
// @Override
// public void onComplete() {
// super.onComplete();
// }
//
// @Override
// public void onNext(List<Modifier> modifierList) {
// if (modifierList == null || modifierList.size() == 0) {
// mFineItemOneList.clear();
// mFineItemAllAdapter.notifyDataSetChanged();
// return;
// }
//
// setFid(modifierList, fid);
//
// mFineItemOneList.clear();
// mFineItemOneList.addAll(modifierList);
// mRootView.setFineItemAllRecycleSpanCount(mFineItemOneList.size());
// mFineItemAllAdapter.notifyDataSetChanged();
// }
@Override
public void onSuccess(List<Modifier> modifierList) {
if (modifierList == null || modifierList.size() == 0) {
......
......@@ -23,6 +23,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
......@@ -47,6 +48,9 @@ import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gyf.immersionbar.ImmersionBar;
import com.jess.arms.base.BaseFragmentActivity;
......@@ -64,12 +68,15 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import com.qmuiteam.qmui.widget.tab.QMUITabView;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import org.simple.eventbus.EventBus;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -141,12 +148,12 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
private ChooseNumberDialog chooseNumberDialog;
private TextView tv_table_name, tv_show_popup;
private QMUITabSegment mTabSegment;
private ViewPager mContentViewPager;
private QMUITabSegment2 mTabSegment;
private ViewPager2 mContentViewPager;
private InputTableFragment inputTableFragment;
private RegionTableFragment allTableFragment, stateTableFragment;
private String[] mTabTitles = {"編號", "全部", "狀態:全部"};
private String[] mTabList = {"編號", "全部", "狀態:全部"};
/**
* 切換餐檯狀態下拉框
*/
......@@ -681,71 +688,25 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
Bundle bundle = new Bundle();
switch (position) {
case 1:
if (allTableFragment != null) {
return allTableFragment;
}
allTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
return allTableFragment;
case 2:
if (stateTableFragment != null) {
return stateTableFragment;
}
stateTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle);
return stateTableFragment;
default:
if (inputTableFragment != null) {
return inputTableFragment;
}
inputTableFragment = InputTableFragment.newInstance();
return inputTableFragment;
}
}
@Override
public int getCount() {
return mTabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
return "";
}
};
QMUITabBuilder builder = mTabSegment.tabBuilder();
QMUITab tab1 = builder
.setText(mTabTitles[0])
.setText(mTabList[0])
.build(mContext);
QMUITab tab2 = builder
.setText(mTabTitles[1])
.setText(mTabList[1])
.build(mContext);
QMUITab tab3 = builder
.setNormalDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setSelectedDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setIconPosition(QMUITab.ICON_POSITION_RIGHT)
.setText(mTabTitles[2])
.setText(mTabList[2])
.build(mContext);
mTabSegment
.addTab(tab1)
.addTab(tab2)
.addTab(tab3);
mContentViewPager.setAdapter(pagerAdapter);
mContentViewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
mContentViewPager.setCurrentItem(mCurrentPageIndex);
int space = QMUIDisplayHelper.dp2px(this, 16);
mTabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(this, 16), QMUIDisplayHelper.dp2px(this, 16));
mTabSegment.setPadding(space, 0, space, 0);
mTabSegment.setupWithViewPager(mContentViewPager, false);
mTabSegment.setOnTabClickListener(new QMUITabSegment.OnTabClickListener() {
@Override
public boolean onTabClick(QMUITabView tabView, int index) {
......@@ -756,15 +717,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
mCurrentPageIndex = index;
return false;
}
// @Override
// public void onTabClick(int index) {
// //彈出選擇狀態彈窗
// if (mCurrentPageIndex == 2 && index == 2) {
// showTableStatusListPopup(tv_show_popup);
// }
// mCurrentPageIndex = index;
// }
});
mTabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
......@@ -788,6 +740,29 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
LogUtil.d(TAG, "onDoubleTap " + index);
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(mTabSegment, mContentViewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
inputTableFragment = InputTableFragment.newInstance();
fragments.add(inputTableFragment);
allTableFragment = RegionTableFragment.newInstance();
Bundle bundle = new Bundle();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
fragments.add(allTableFragment);
stateTableFragment = RegionTableFragment.newInstance();
Bundle bundle2 = new Bundle();
bundle2.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle2);
fragments.add(stateTableFragment);
return fragments;
}
private void showTableStatusListPopup(View view) {
......
......@@ -12,6 +12,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
......@@ -28,8 +29,11 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineChildAllFrag
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineChildOneselfFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
......@@ -44,9 +48,12 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import com.qmuiteam.qmui.widget.tab.QMUITabView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import androidx.annotation.NonNull;
......@@ -57,6 +64,8 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import butterknife.BindView;
import butterknife.OnClick;
......@@ -102,9 +111,9 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
@BindView(R2.id.ll_fine_item)
LinearLayout ll_fine_item;//细项操作
@BindView(R2.id.tabSegment)
QMUITabSegment mTabSegment;
QMUITabSegment2 mTabSegment;
@BindView(R2.id.contentViewPager)
ViewPager mContentViewPager;
ViewPager2 mContentViewPager;
@BindView(R2.id.tv_soldout)
TextView tv_soldout;
......@@ -137,7 +146,7 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
private FineChildOneselfFragment oneselfFineItemFragment;
private FineChildAllFragment modMsgFineItemFragment, modSasteFineItemFragment;
private String[] mFineTabTitles = {"子項", "口味", "特別信息"};
private String[] mTabList = {"子項", "口味", "特別信息"};
private int mCurrentFinePageIndex;
private boolean mInitModData = false;
......@@ -223,7 +232,7 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
foodColumn = GsaCloudApplication.uiStyleConfiguration.getFoodColumnValue();
}
public void initFoodGroupAdapter(List<Food> foodGroupList){
public void initFoodGroupAdapter(List<Food> foodGroupList) {
// 使用原生的 Adapter 即可
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList, 2);
mFoodGroupAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
......@@ -714,77 +723,22 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
switch (position) {
case 2:
if (modMsgFineItemFragment != null) {
return modMsgFineItemFragment;
}
modMsgFineItemFragment = FineChildAllFragment.newInstance();
return modMsgFineItemFragment;
case 1:
if (modSasteFineItemFragment != null) {
return modSasteFineItemFragment;
}
modSasteFineItemFragment = FineChildAllFragment.newInstance();
return modSasteFineItemFragment;
default:
if (oneselfFineItemFragment != null) {
return oneselfFineItemFragment;
}
oneselfFineItemFragment = FineChildOneselfFragment.newInstance();
return oneselfFineItemFragment;
}
}
@Override
public int getCount() {
return mFineTabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
return "";
}
};
QMUITabBuilder builder = mTabSegment.tabBuilder();
QMUITab tab1 = builder
.setText(mFineTabTitles[0])
.build(mContext);
QMUITab tab2 = builder
.setText(mFineTabTitles[1])
for (final String tabTitle : mTabList) {
QMUITab tab = builder
.setText(tabTitle)
.build(mContext);
QMUITab tab3 = builder
.setText(mFineTabTitles[2])
.build(mContext);
mTabSegment
.addTab(tab1)
.addTab(tab2)
.addTab(tab3);
mContentViewPager.setAdapter(pagerAdapter);
mTabSegment.addTab(tab);
}
mContentViewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
mContentViewPager.setCurrentItem(mCurrentFinePageIndex);
mContentViewPager.setOffscreenPageLimit(2);
int space = QMUIDisplayHelper.dp2px(this, 16);
mTabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(this, 16), QMUIDisplayHelper.dp2px(this, 16));
mTabSegment.setPadding(space, 0, space, 0);
mTabSegment.setupWithViewPager(mContentViewPager, false);
mTabSegment.setOnTabClickListener(new QMUITabSegment.OnTabClickListener() {
@Override
public boolean onTabClick(QMUITabView tabView, int index) {
mCurrentFinePageIndex = index;
return false;
}
// @Override
// public void onTabClick(int index) {
// mCurrentFinePageIndex = index;
// }
});
mTabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
......@@ -799,14 +753,24 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
@Override
public void onTabReselected(int index) {
LogUtil.d(TAG, "onTabReselected " + index);
}
@Override
public void onDoubleTap(int index) {
LogUtil.d(TAG, "onDoubleTap " + index);
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(mTabSegment, mContentViewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
oneselfFineItemFragment = FineChildOneselfFragment.newInstance();
modMsgFineItemFragment = FineChildAllFragment.newInstance();
modSasteFineItemFragment = FineChildAllFragment.newInstance();
fragments.add(oneselfFineItemFragment);
fragments.add(modMsgFineItemFragment);
fragments.add(modSasteFineItemFragment);
return fragments;
}
public void setFineItemSoldoutListFull(Long fid, List<SoldoutCtrFood> currentSoldoutFoodListc_Full) {
......
......@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
......@@ -41,6 +42,9 @@ import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter;
......@@ -59,12 +63,15 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import com.qmuiteam.qmui.widget.tab.QMUITabView;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import org.simple.eventbus.Subscriber;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -93,9 +100,9 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tabSegment)
QMUITabSegment mTabSegment;
QMUITabSegment2 mTabSegment;
@BindView(R2.id.contentViewPager)
ViewPager mContentViewPager;
ViewPager2 mContentViewPager;
@BindView(R2.id.tv_show_popup)
TextView tv_show_popup;
......@@ -119,7 +126,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@BindView(R2.id.iv_lock)
ImageView iv_lock;
private LoadService loadService;
/**
* 輪訓刷新餐檯數據
*/
......@@ -131,7 +137,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
private InputTableFragment inputTableFragment;
private RegionTableFragment allTableFragment, stateTableFragment;
private String[] mTabTitles = {"編號", "全部", "狀態:全部"};
private String[] mTabList = {"編號", "全部", "狀態:全部"};
/**
* 切換餐檯狀態下拉框
*/
......@@ -145,7 +151,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
*/
private int mCurrentSelectTableStatus = TableActionConstant.table_status_0;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerTableComponent //如找不到该类,请编译一下项目
......@@ -165,13 +170,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
public void initData(@Nullable Bundle savedInstanceState) {
tv_show_popup.setWidth(ArmsUtils.getScreenWidth(this) / 3);
// loadService = LoadSir.getDefault().register(this, new Callback.OnReloadListener() {
// @Override
// public void onReload(View v) {
// //重新加载逻辑
// getTables(true, null);
// }
// });
initTabAndPager();
setBottomFunctionVisibility(true);
getTables(true, null);
......@@ -478,52 +476,12 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
Bundle bundle = new Bundle();
switch (position) {
case 1:
if (allTableFragment != null) {
return allTableFragment;
}
allTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
return allTableFragment;
case 2:
if (stateTableFragment != null) {
return stateTableFragment;
}
stateTableFragment = RegionTableFragment.newInstance();
bundle.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle);
return stateTableFragment;
default:
if (inputTableFragment != null) {
return inputTableFragment;
}
inputTableFragment = InputTableFragment.newInstance();
return inputTableFragment;
}
}
@Override
public int getCount() {
return mTabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
return "";
}
};
QMUITabBuilder builder = mTabSegment.tabBuilder();
QMUITab tab1 = builder
.setText(mTabTitles[0])
.setText(mTabList[0])
.build(mContext);
QMUITab tab2 = builder
.setText(mTabTitles[1])
.setText(mTabList[1])
.setNormalDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setSelectedDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setIconPosition(QMUITab.ICON_POSITION_RIGHT)
......@@ -532,20 +490,14 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
.setNormalDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setSelectedDrawable(ContextCompat.getDrawable(mContext, R.drawable.arrow_down_black))
.setIconPosition(QMUITab.ICON_POSITION_RIGHT)
.setText(mTabTitles[2])
.setText(mTabList[2])
.build(mContext);
mTabSegment
.addTab(tab1)
.addTab(tab2)
.addTab(tab3);
mContentViewPager.setAdapter(pagerAdapter);
mContentViewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
mContentViewPager.setCurrentItem(mCurrentPageIndex);
int space = QMUIDisplayHelper.dp2px(this, 16);
mTabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(this, 16), QMUIDisplayHelper.dp2px(this, 16));
mTabSegment.setPadding(space, 0, space, 0);
mTabSegment.setupWithViewPager(mContentViewPager, false);
mTabSegment.setOnTabClickListener(new QMUITabSegment.OnTabClickListener() {
@Override
public boolean onTabClick(QMUITabView tabView, int index) {
......@@ -563,7 +515,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabTitles[index] + "】");
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabList[index] + "】");
switch (index) {
case 0:
//setBottomFunctionVisibility(false);
......@@ -596,6 +548,29 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
LogUtil.d(TAG, "onDoubleTap " + index);
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(mTabSegment, mContentViewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
inputTableFragment = InputTableFragment.newInstance();
fragments.add(inputTableFragment);
allTableFragment = RegionTableFragment.newInstance();
Bundle bundle = new Bundle();
bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
allTableFragment.setArguments(bundle);
fragments.add(allTableFragment);
stateTableFragment = RegionTableFragment.newInstance();
Bundle bundle2 = new Bundle();
bundle2.putInt("currentPageIndex", FUNCTION_STATE_TABLE);
stateTableFragment.setArguments(bundle2);
fragments.add(stateTableFragment);
return fragments;
}
private void showTableAreaListPopup(View view) {
......
......@@ -15,6 +15,7 @@ import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract;
......@@ -29,6 +30,9 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.OrderCenterPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.di.component.AppComponent;
......@@ -38,12 +42,18 @@ import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import org.simple.eventbus.Subscriber;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import butterknife.BindView;
......@@ -69,9 +79,9 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tabSegment)
QMUITabSegment mTabSegment;
QMUITabSegment2 mTabSegment;
@BindView(R2.id.contentViewPager)
ViewPager mContentViewPager;
ViewPager2 mContentViewPager;
@BindView(R2.id.ll_content)
LinearLayout ll_content;
@BindView(R2.id.ll_bottom)
......@@ -93,7 +103,6 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
private int mCurrentFragmentIndex = 0;
//標題
private String[] mTabTitles = {"已付款", "已取消"};
// private String[] mTabTitles = {"堂食"};
//是否已經初始化數據,默認初始化第一個頁面
private boolean[] mPageDataInit = {true, false, false};
......@@ -192,68 +201,21 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
Bundle bundle = new Bundle();
switch (position) {
case 1:
if (mCancelOrderFragment != null) {
return mCancelOrderFragment;
}
mCancelOrderFragment = new AllOrderFragment();
bundle.putInt("currentFragmentIndex", 1);
mCancelOrderFragment.setArguments(bundle);
return mCancelOrderFragment;
case 2:
if (mVoidOrderFragment != null) {
return mVoidOrderFragment;
}
mVoidOrderFragment = new AllOrderFragment();
bundle.putInt("currentFragmentIndex", 2);
mVoidOrderFragment.setArguments(bundle);
return mVoidOrderFragment;
default:
if (mNormalOrderFragment != null) {
return mNormalOrderFragment;
}
mNormalOrderFragment = new AllOrderFragment();
bundle.putInt("currentFragmentIndex", 0);
mNormalOrderFragment.setArguments(bundle);
return mNormalOrderFragment;
}
}
@Override
public int getCount() {
return mTabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 1:
return mTabTitles[1];
case 2:
return mTabTitles[2];
default:
return mTabTitles[0];
}
}
};
mContentViewPager.setAdapter(pagerAdapter);
int space = QMUIDisplayHelper.dp2px(this, 16);
mTabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(this, 16), QMUIDisplayHelper.dp2px(this, 16));
mTabSegment.setPadding(space, 0, space, 0);
mTabSegment.setupWithViewPager(mContentViewPager);
QMUITabBuilder builder = mTabSegment.tabBuilder();
for (final String tabTitle : mTabTitles) {
QMUITab tab = builder
.setText(tabTitle)
.build(mContext);
mTabSegment.addTab(tab);
}
mContentViewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
mTabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
public void onTabSelected(int index) {
mCurrentFragmentIndex = index;
//頁面切換
pagerAdapter.createFragment(index);
// pagerAdapter.createFragment(index);
if (!mPageDataInit[index]) {
//未初始化數據,獲取數據
loadOrderList(getCurrentOrderFragment().getOrderType(), getStatusByFragmentIndex(), null, false);
......@@ -283,6 +245,32 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
public void onDoubleTap(int index) {
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(mTabSegment, mContentViewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
mNormalOrderFragment = new AllOrderFragment();
Bundle bundle = new Bundle();
bundle.putInt("currentFragmentIndex", 0);
mNormalOrderFragment.setArguments(bundle);
fragments.add(mNormalOrderFragment);
mCancelOrderFragment = new AllOrderFragment();
Bundle bundle2 = new Bundle();
bundle2.putInt("currentFragmentIndex", 1);
mCancelOrderFragment.setArguments(bundle2);
fragments.add(mCancelOrderFragment);
mVoidOrderFragment = new AllOrderFragment();
Bundle bundle3 = new Bundle();
bundle.putInt("currentFragmentIndex", 2);
mVoidOrderFragment.setArguments(bundle3);
fragments.add(mVoidOrderFragment);
return fragments;
}
@Override
......
......@@ -14,6 +14,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
......@@ -22,6 +23,9 @@ import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.jess.arms.base.BaseDialogFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.BasePresenter;
......@@ -32,8 +36,11 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import butterknife.BindView;
......@@ -49,16 +56,16 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
private final String TAG = "DiscountFragment";
@BindView(R2.id.tabSegment)
QMUITabSegment tabSegment;
QMUITabSegment2 tabSegment;
@BindView(R2.id.contentViewPager)
ViewPager contentViewPager;
ViewPager2 contentViewPager;
@BindView(R2.id.ll_container)
QMUILinearLayout llContainer;
private CouponFragment couponFragment;
private NomalDiscountFragment billDiscountFragment;
private List<String> mTabTitles = new ArrayList<>();
private List<String> mTabList = new ArrayList<>();
private int mCurrentPageIndex = 0;
public static DiscountDialogFragment newInstance() {
......@@ -105,80 +112,29 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
}
private void initTabAndPager() {
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment createFragment(int position) {
switch (position) {
case 1:
if (couponFragment != null) {
return couponFragment;
}
couponFragment = CouponFragment.newInstance(CouponFragment.BILL_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener(new CouponFragment.OnCouponItemClickListener() {
@Override
public void onItemClick(MemberWalletCoupon item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
}
});
return couponFragment;
default:
if (billDiscountFragment != null) {
return billDiscountFragment;
}
billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener(new NomalDiscountFragment.OnBillDiscountItemClickListener() {
@Override
public void onItemClick(Discount item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
}
});
return billDiscountFragment;
}
}
@Override
public int getCount() {
return mTabTitles.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTabTitles.get(position);
}
};
QMUITabBuilder builder = tabSegment.tabBuilder();
mTabTitles.add("折扣");
mTabList.add("折扣");
QMUITab tab1 = builder
.setText(mTabTitles.get(0))
.build(_mActivity);
.setText(mTabList.get(0))
.build(mContext);
tabSegment.addTab(tab1);
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
mTabTitles.add("會員錢包");
mTabList.add("會員錢包");
QMUITab tab2 = builder
.setText(mTabTitles.get(1))
.build(_mActivity);
.setText(mTabList.get(1))
.build(mContext);
tabSegment.addTab(tab2);
}
contentViewPager.setAdapter(pagerAdapter);
contentViewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
contentViewPager.setCurrentItem(mCurrentPageIndex);
int space = QMUIDisplayHelper.dp2px(_mActivity, 16);
tabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(_mActivity, 2), false, true));
tabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(_mActivity, 16), QMUIDisplayHelper.dp2px(_mActivity, 16));
tabSegment.setPadding(space, 0, space, 0);
tabSegment.setupWithViewPager(contentViewPager, false);
tabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabTitles.get(index) + "】");
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabList.get(index) + "】");
}
@Override
......@@ -193,6 +149,32 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
public void onDoubleTap(int index) {
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(tabSegment, contentViewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
couponFragment = CouponFragment.newInstance(CouponFragment.BILL_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener(new CouponFragment.OnCouponItemClickListener() {
@Override
public void onItemClick(MemberWalletCoupon item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
}
});
billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener(new NomalDiscountFragment.OnBillDiscountItemClickListener() {
@Override
public void onItemClick(Discount item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
}
});
fragments.add(couponFragment);
fragments.add(billDiscountFragment);
return fragments;
}
@Override
......
......@@ -9,6 +9,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
......@@ -17,6 +18,9 @@ import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.BasePresenter;
......@@ -27,8 +31,11 @@ import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import butterknife.BindView;
......@@ -44,9 +51,9 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
private final String TAG = "DiscountFragment";
@BindView(R2.id.tabSegment)
QMUITabSegment tabSegment;
@BindView(R2.id.contentViewPager)
ViewPager contentViewPager;
QMUITabSegment2 tabSegment;
@BindView(R2.id.viewPager)
ViewPager2 viewPager;
@BindView(R2.id.ll_container)
QMUILinearLayout llContainer;
private int mCurrentPageIndex = 0;
......@@ -81,62 +88,17 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
private void initTabAndPager() {
List<Fragment> fragments = new ArrayList<>();
CouponFragment couponFragment = CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
});
NomalDiscountFragment billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
});
fragments.add(couponFragment);
fragments.add(billDiscountFragment);
final List<String> tabList = getTabTitles();
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return tabList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabList.get(position);
}
};
QMUITabBuilder builder = tabSegment.tabBuilder();
QMUITab tab1 = builder
.setText(tabList.get(0))
.build(_mActivity);
tabSegment.addTab(tab1);
if (tabList.size() > 1) {
QMUITab tab2 = builder
.setText(tabList.get(1))
.build(_mActivity);
tabSegment.addTab(tab2);
}
contentViewPager.setAdapter(pagerAdapter);
contentViewPager.setCurrentItem(mCurrentPageIndex);
int space = QMUIDisplayHelper.dp2px(_mActivity, 16);
tabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(_mActivity, 2), false, true));
tabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(_mActivity, 16), QMUIDisplayHelper.dp2px(_mActivity, 16));
tabSegment.setPadding(space, 0, space, 0);
tabSegment.setupWithViewPager(contentViewPager, false);
for (final String tabTitle : tabList) {
QMUITab tab = builder
.setText(tabTitle)
.build(mContext);
tabSegment.addTab(tab);
}
viewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
viewPager.setCurrentItem(mCurrentPageIndex);
tabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
......@@ -156,6 +118,26 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
public void onDoubleTap(int index) {
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(tabSegment,viewPager);
}
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
CouponFragment couponFragment = CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
});
NomalDiscountFragment billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
});
fragments.add(couponFragment);
fragments.add(billDiscountFragment);
return fragments;
}
private List<String> getTabTitles() {
......
......@@ -5,34 +5,44 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerFineComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.LoadFineEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.FinePresenter;
import com.gingersoft.gsa.cloud.ui.adapter.IQMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.view.MyTableView;
import com.gingersoft.gsa.cloud.ui.utils.QMUITabSegmentUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import org.simple.eventbus.EventBus;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -51,16 +61,14 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
public class FineFragment extends BaseFragment<FinePresenter> implements FineContract.View {
@BindView(R2.id.tabLayout)
MyTableView tabFine;
@BindView(R2.id.viewPager2)
ViewPager2 vPager2Fine;
private String[] mFineTitles = {"口味", "信息"};
private FineChildAllFragment modSasteFineItemFragment, modMsgFineItemFragment;
@BindView(R2.id.tabSegment)
QMUITabSegment2 tabSegment;
@BindView(R2.id.viewPager)
ViewPager2 viewPager;
@BindView(R2.id.ll_container)
QMUILinearLayout llContainer;
private LoadFineEvent mLoadFineEvent;
private String[] mTabList = {"口味", "信息"};
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
......@@ -83,53 +91,57 @@ public class FineFragment extends BaseFragment<FinePresenter> implements FineCon
initViewPager();
}
@OnClick(R2.id.iv_fine_back)
void onFineBackViewClick(View view) {
killMyself();
}
private void initViewPager() {
List<Fragment> fragments = new ArrayList<>();
modSasteFineItemFragment = FineChildAllFragment.newInstance();
modMsgFineItemFragment = FineChildAllFragment.newInstance();
fragments.add(modSasteFineItemFragment);
fragments.add(modMsgFineItemFragment);
//实例化适配器
ViewPager2Adapter viewPager2Adapter = new ViewPager2Adapter(_mActivity, fragments);
//设置Viewpager2的适配器
vPager2Fine.setAdapter(viewPager2Adapter);
//TabLayout綁定Viewpager2
TabLayoutMediator tab = new TabLayoutMediator(tabFine, vPager2Fine, true, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
tab.setText(mFineTitles[position]);
QMUITabBuilder builder = tabSegment.tabBuilder();
for (final String tabTitle : mTabList) {
QMUITab tab = builder
.setText(tabTitle)
.build(mContext);
tabSegment.addTab(tab);
}
});
tab.attach();
tabFine.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
viewPager.setAdapter(new ViewPager2Adapter(this, createFragments()));
viewPager.setCurrentItem(0);
tabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
if (mLoadFineEvent != null) {
mLoadFineEvent.setCurrFinePage(position);
EventBus.getDefault().post(mLoadFineEvent, FineChildAllFragment.LOAD_FINE_DATA_EVENT);
}
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabList[index] + "】");
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
public void onTabUnselected(int index) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
public void onTabReselected(int index) {
}
@Override
public void onDoubleTap(int index) {
}
});
QMUITabSegmentUtils.setNomalTabSegmentStyle(tabSegment, viewPager);
}
public void updateFineData(LoadFineEvent fineEvent) {
this.mLoadFineEvent = fineEvent;
private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>();
FineChildAllFragment modSasteFineItemFragment = FineChildAllFragment.newInstance();
FineChildAllFragment modMsgFineItemFragment = FineChildAllFragment.newInstance();
fragments.add(modSasteFineItemFragment);
fragments.add(modMsgFineItemFragment);
return fragments;
}
public void setCurrentItem(int currFinePage) {
vPager2Fine.setCurrentItem(currFinePage);
viewPager.setCurrentItem(currFinePage);
}
@Override
......@@ -164,7 +176,9 @@ public class FineFragment extends BaseFragment<FinePresenter> implements FineCon
@Override
public void killMyself() {
_mActivity.onBackPressedSupport();
SetMealFragment childFragment = findChildFragment(SetMealFragment.class);
checkNotNull(childFragment);
childFragment.backFoodViewMode();
}
......
......@@ -97,6 +97,7 @@ import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber;
import org.simple.eventbus.ThreadMode;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
......@@ -180,19 +181,19 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@BindView(R2.id.scroll_combo)
NestedScrollView scrollCombo;
@BindView(R2.id.ll_fine)
LinearLayout llFine;
@BindView(R2.id.tab_fine)
MyTableView tabFine;
@BindView(R2.id.pager_fine)
ViewPager2 vPager2Fine;
// @BindView(R2.id.ll_fine)
// LinearLayout llFine;
// @BindView(R2.id.tab_fine)
// MyTableView tabFine;
// @BindView(R2.id.pager_fine)
// ViewPager2 vPager2Fine;
@BindView(R2.id.meal_stand_search_keyboard_view)
SearchKeyBoardView mealStandSearchKeyboardView;
@BindView(R2.id.fl_discount_fragment)
FrameLayout flDiscountFragment;
// @BindView(R2.id.fl_fine_fragment)
// FrameLayout flFineFragment;
@BindView(R2.id.fl_fine_fragment)
FrameLayout flFineFragment;
@BindView(R2.id.btn_select_all)
QMUIAlphaTextView btnSelectAll;
......@@ -239,7 +240,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
/**
* 是否已初始化 已送單的折扣
*/
private boolean initSentOrderDiscount = false;
private boolean isLoadFineFragment = false;
private ImageView[] ivPoints;
private int totalPage;
......@@ -316,7 +317,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
map.put(MealConstant.food_ViewMode, rvFood);
map.put(MealConstant.combo_ViewMode, scrollCombo);
map.put(MealConstant.discount_ViewMode, flDiscountFragment);
map.put(MealConstant.fine_ViewMode, llFine);
map.put(MealConstant.fine_ViewMode, flFineFragment);
map.put(MealConstant.keys_viewMode, mealStandSearchKeyboardView);
}
......@@ -456,6 +457,10 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
setCurrViewMode(MealConstant.fine_ViewMode);
final FineFragment childFragment = findChildFragment(FineFragment.class);
if (childFragment != null) {
if (isLoadFineFragment) {
childFragment.setCurrentItem(currFinePage);
return;
}
long productId = 0;
if (mPresenter.getCurrentOrderDetailBean() != null) {
productId = mPresenter.getCurrentOrderDetailBean().getProductId();
......@@ -471,8 +476,11 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
fineEvent.setSelectedMode(selectedMode);
fineEvent.setSoldoutCtrFoods(soldoutCtrFoods);
childFragment.updateFineData(fineEvent);
//加载细项数据
EventBus.getDefault().post(fineEvent, FineChildAllFragment.LOAD_FINE_DATA_EVENT);
childFragment.setCurrentItem(currFinePage);
isLoadFineFragment = true;
}
}
......@@ -768,7 +776,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public MealStandActivity2 getActivity2() {
return mActivity;
return (MealStandActivity2) _mActivity;
}
@Override
......@@ -817,9 +825,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
return;
}
setCurrViewMode(MealConstant.discount_ViewMode);
// //更新折扣数据
// mPresenter.loadDiscountData();
// showViewModeVisibility(MealConstant.discount_ViewMode);
}
@OnClick(R2.id.btn_multiple_selection)
......@@ -898,6 +903,11 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
} else if (id == R.id.btn_delete) {
mPresenter.deleteChildItem();
} else if (id == R.id.btn_end) {
backFoodViewMode();
}
}
public void backFoodViewMode() {
//回復單選
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
btnDelete.setVisibility(View.VISIBLE);
......@@ -906,10 +916,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
mPresenter.resetSelected();
setCurrViewMode(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
// else if (id == R.id.iv_fine_back) {
// showViewModeVisibility(MealConstant.combo_ViewMode);
// }
}
@OnClick({R2.id.btn_key1, R2.id.btn_key2, R2.id.btn_key3, R2.id.btn_key4, R2.id.btn_key5, R2.id.btn_keys})
public void onKeyViewClick(View v) {
......
......@@ -17,13 +17,13 @@
android:layout_marginTop="@dimen/head_height"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg"/>
<androidx.viewpager.widget.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
......@@ -7,6 +8,7 @@
android:id="@+id/rv_bill_discount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" />
android:orientation="horizontal"
/>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.qmuiteam.qmui.layout.QMUILinearLayout 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:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id="@+id/tabLayout"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
<ImageView
android:id="@+id/iv_fine_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/theme_white_color"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
android:layout_gravity="center_vertical"
android:padding="@dimen/dp_10"
android:src="@drawable/ic_black_back" />
</FrameLayout>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:layout_height="match_parent"
android:layout_below="@+id/tabSegment" />
</LinearLayout>
\ No newline at end of file
</com.qmuiteam.qmui.layout.QMUILinearLayout>
\ No newline at end of file
......@@ -131,7 +131,7 @@
android:src="@drawable/ic_black_back"
android:visibility="visible" />
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="wrap_content"
android:layout_height="match_parent"
......@@ -139,7 +139,7 @@
android:background="@drawable/shape_tab_panel_bg"/>
</RelativeLayout>
<androidx.viewpager.widget.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
......
......@@ -53,29 +53,31 @@
<FrameLayout
android:id="@+id/fl_discount_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:visibility="gone">
<!-- <fragment-->
<!-- android:id="@+id/fragment_discount"-->
<!-- android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountFragment"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
</FrameLayout>
<FrameLayout
android:id="@+id/fl_fine_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:visibility="gone">
<fragment
android:id="@+id/fragment_discount"
android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountFragment"
android:id="@+id/fragment_fine"
android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
<!-- <FrameLayout-->
<!-- android:id="@+id/fl_fine_fragment"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:visibility="gone">-->
<!-- <fragment-->
<!-- android:id="@+id/fragment_fine"-->
<!-- android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineFragment"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<!-- </FrameLayout>-->
<!--鍵盤-->
<com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
android:id="@+id/meal_stand_search_keyboard_view"
......
......@@ -6,14 +6,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id="@+id/tab_fine"
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabs_fine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_white_color"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager_fine"
......
......@@ -26,13 +26,13 @@
android:layout_alignParentRight="true"
android:text="" />
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
<androidx.viewpager.widget.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
......
......@@ -6,14 +6,14 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/contentViewPager"
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
......
......@@ -37,14 +37,14 @@
android:layout_alignParentRight="true"
android:text="" />
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabSegment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
</RelativeLayout>
<androidx.viewpager.widget.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.common.rxjava;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.Single;
......@@ -23,4 +24,9 @@ public class MyRxUtils {
.compose(RxSchedulerUtils._io_main_o());
}
public static <T> Flowable<T> fl_just_io_main(T t) {
return Flowable.just(t)
.compose(RxSchedulerUtils._io_main_f());
}
}
package com.gingersoft.gsa.cloud.ui.adapter;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import java.util.List;
/**
* @作者: bin
* @創建時間: 2021-04-23 12:04
* @更新時間: 2021-04-23 12:04
* @描述:
*/
public class IQMUIFragmentPagerAdapter extends QMUIFragmentPagerAdapter {
private List<Fragment> fragments;
private List<String> tabTitles;
public IQMUIFragmentPagerAdapter(@NonNull FragmentManager fm, @NonNull List<Fragment> fragments, @NonNull List<String> tabTitles) {
super(fm);
this.fragments = fragments;
this.tabTitles = tabTitles;
}
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabTitles.get(position);
}
}
package com.gingersoft.gsa.cloud.ui.adapter;
import android.app.Activity;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
......@@ -18,6 +20,11 @@ public class ViewPager2Adapter extends FragmentStateAdapter {
this.mFragments = fragments;
}
public ViewPager2Adapter(@NonNull Fragment fragment, List<Fragment> fragments) {
super(fragment);
this.mFragments = fragments;
}
public void setFragments(List<Fragment> fragments) {
mFragments = fragments;
notifyDataSetChanged();
......@@ -33,4 +40,5 @@ public class ViewPager2Adapter extends FragmentStateAdapter {
public int getItemCount() {
return mFragments.size();
}
}
package com.gingersoft.gsa.cloud.ui.utils;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
/**
* @作者: bin
* @創建時間: 2021-04-2 14:17
* @更新時間: 2021-04-2 14:17
* @描述:
*/
public class QMUITabSegmentUtils {
public static void setNomalTabSegmentStyle(QMUITabSegment2 tabSegment, ViewPager2 viewPager){
GsaCloudApplication appContext = GsaCloudApplication.getAppContext();
int space = QMUIDisplayHelper.dp2px(appContext, 16);
tabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(appContext, 2), false, true));
tabSegment.setDefaultTextSize(space, space);
tabSegment.setPadding(space, 0, space, 0);
tabSegment.setupWithViewPager(viewPager);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment