商品分类
This commit is contained in:
parent
80ee78d2d1
commit
6c729c0943
@ -38,7 +38,7 @@ public class BaseMyApplication extends Application {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
MultiDex.install(this);
|
||||
// ARouter.openDebug();
|
||||
ARouter.openDebug();
|
||||
MagicScreenAdapter.initDesignWidthInDp(1024, true);
|
||||
ARouter.init(BaseMyApplication.this);
|
||||
initShare();
|
||||
|
@ -60,7 +60,8 @@ public class PathConfig {
|
||||
|
||||
public static final String DID_CITY_CODE = "640675";//日喀则市编码
|
||||
//新闻类型
|
||||
public static final int NEWS_TYPE_MULTI_PIC = 2332;//key_1 三图; key_2 一图左;key_3 一图右;key_4 一图下;key_5 纯文字;key_6 视频;key_7 音频;
|
||||
public static final int NEWS_TYPE_MULTI_PIC = 2332;//key_1 三图; key_2 一图左;key_3 一图右;key_4 一图下;key_5 纯文字;key_6 视频;
|
||||
// key_7 音频;
|
||||
public static final int NEWS_TYPE_SINGLE_PIC_LEFT = 2333;//一图左
|
||||
public static final int NEWS_TYPE_SINGLE_PIC_RIGHT = 2334;//一图右
|
||||
public static final int NEWS_TYPE_SINGLE_PIC_BOTTOM = 2335;//一图下
|
||||
@ -78,9 +79,14 @@ public class PathConfig {
|
||||
// N员:bc405346-8714-4ded-89ac-9cc4d755f66a
|
||||
// 巡检:25affe67-134c-4a32-ba41-64b0cfedc782
|
||||
public static final int PATROL_SECTOR_INDEX = 3;//巡更点NFC使用的扇区
|
||||
public static final String CATCH_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator + "cache" + File.separator;
|
||||
public static final String VIDEO_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator + "videoCache" + File.separator;
|
||||
public static final String PROJECT_CATCH_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME;//项目缓存目录
|
||||
public static final String CATCH_PATH =
|
||||
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator +
|
||||
"cache" + File.separator;
|
||||
public static final String VIDEO_PATH =
|
||||
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator +
|
||||
"videoCache" + File.separator;
|
||||
public static final String PROJECT_CATCH_PATH =
|
||||
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME;//项目缓存目录
|
||||
public static final String IDENTITY_FILE = VIDEO_PATH + "identity.txt";
|
||||
/**
|
||||
* ====================================主模块===================================
|
||||
@ -111,7 +117,8 @@ public class PathConfig {
|
||||
public static final String PATH_MODULE_PLACE_ACTIVITY_PLACEDETAIL = "/moduleplace/activity/placedetail";//场馆详情
|
||||
public static final String PATH_MODULE_PLACE_ACTIVITY_PLACELIST = "/moduleplace/activity/placelist";//场馆列表
|
||||
public static final String PATH_MODULE_PLACE_FRAGMENT_MAIN = "/moduleplace/fragment/main";//场馆fragment
|
||||
public static final String PATH_MODULE_PLACE_ACTIVITY_PLACE_SUBJECT_DETAIL = "/moduleplace/activity/subjectdetail";//场馆详情
|
||||
public static final String PATH_MODULE_PLACE_ACTIVITY_PLACE_SUBJECT_DETAIL = "/moduleplace/activity/subjectdetail"
|
||||
;//场馆详情
|
||||
|
||||
public static final String PATH_MODULE_PLACE_TICKET_DISTINE = "/moduleplace/activity/distineticket";//门票预定
|
||||
public static final String PATH_MODULE_PLACE_DISTINE_BOOKING = "/moduleplace/activity/distinebooking";//场次预定
|
||||
@ -122,40 +129,63 @@ public class PathConfig {
|
||||
public static final String PATH_MODULE_CULTURAL_FRAGMENT_MAIN = "/modulecultural/fragment/main";//文化主页fragment
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_LEGACY = "/modulecultural/activity/legacy";//非遗数据库
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_LEGACY_DETAIL = "/modulecultural/activity/legacy/detail";
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_PUBLISH = "/modulecultural/activity/vounteerpublish";//发布自愿者活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_REGISTER_SINGLE = "/modulecultural/activity/vounteerregistersingle";//注册志愿者
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_REGISTER_TEAM = "/modulecultural/activity/vounteerregisterteam";//注册志愿者团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_PUBLISH = "/modulecultural/activity/vounteerpublish";
|
||||
//发布自愿者活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_REGISTER_SINGLE = "/modulecultural/activity" +
|
||||
"/vounteerregistersingle";//注册志愿者
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_REGISTER_TEAM = "/modulecultural/activity" +
|
||||
"/vounteerregisterteam";//注册志愿者团队
|
||||
public static final String PATH_MODULE_CULTURAL_CHOOSE_MEMBER = "/modulecultural/activity/choosemember";//选择成员
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MAIN = "/modulecultural/activity/vounteermain";//志愿者主页
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE = "/modulecultural/activity/vounteermanage";//志愿团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_LIST = "/modulecultural/activity/vounteermanagelsit";//我创建的自愿者团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_TEAM = "/modulecultural/activity/vounteermember";//志愿者列表
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MEMBER_DETAIL = "/modulecultural/activity/vounteermemberdetail";//志愿者详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_MEMBER = "/modulecultural/activity/vounteermemberedit";//审批团队成员
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_LIST = "/modulecultural/activity" +
|
||||
"/vounteermanagelsit";//我创建的自愿者团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_TEAM = "/modulecultural/activity/vounteermember"
|
||||
;//志愿者列表
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MEMBER_DETAIL = "/modulecultural/activity" +
|
||||
"/vounteermemberdetail";//志愿者详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_MEMBER = "/modulecultural/activity" +
|
||||
"/vounteermemberedit";//审批团队成员
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_DEAL = "/modulecultural/activity/registerdeal";//协议
|
||||
public static final String PATH_MODULE_CULTURAL_LIVE_DETAIL = "/modulecultural/activity/livedetail";//点播直播详情
|
||||
public static final String PATH_MODULE_CULTURAL_LIVE = "/modulecultural/activity/live";//点播直播
|
||||
public static final String PATH_MODULE_CULTURAL_LIVE_LOCKBACK = "/modulecultural/activity/livelookback";//直播回看
|
||||
public static final String PATH_MODULE_CULTURAL_LIVE_LIST = "/modulecultural/activity/livelookbacklist";//直播回看播放列表
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_DETAIL = "/modulecultural/activity/vounteer/detail";//我创建的团队详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_EDIT = "/modulecultural/activity/vounteer/edit";//编辑我创建的团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_DETAIL = "/modulecultural/activity/vounteer" +
|
||||
"/detail";//我创建的团队详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_EDIT = "/modulecultural/activity/vounteer/edit"
|
||||
;//编辑我创建的团队
|
||||
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_LIST = "/modulecultural/activity/vounteer/activitylist";//志愿者活动列表
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_DETAIL = "/modulecultural/activity/vounteer/activitydetail";//志愿者活动详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_SIGN_IN_TEAM = "/modulecultural/activity/vounteer/actviitysignteam";//志愿活动报名-团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_SIGN_IN_SINGLE = "/modulecultural/activity/vounteer/actviitysignsingle";//志愿活动报名-个人
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_LOG = "/modulecultural/activity/vounteer/actviitylog";//活动日志
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_EDIT = "/modulecultural/activity/vounteer/actviityedit";//修改我发起的活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_MINE = "/modulecultural/activity/vounteer/activitymine";//我的志愿活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_CHOOSE_TEAM = "/modulecultural/activity/vounteer/activitychooseteam";//活动报名选择我的团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_INFO_DETAIL = "/modulecultural/activity/vounteer/infodetail";//志愿者个人信息
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_INFO_EDIT = "/modulecultural/activity/vounteer/infoedit";//自愿者信息修改
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_FRAGMENT_TEAM = "/modulecultural/fragment/vounteerteam";//rlv_teams
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_LIST = "/modulecultural/activity/vounteer" +
|
||||
"/activitylist";//志愿者活动列表
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_DETAIL = "/modulecultural/activity/vounteer" +
|
||||
"/activitydetail";//志愿者活动详情
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_SIGN_IN_TEAM = "/modulecultural/activity" +
|
||||
"/vounteer/actviitysignteam";//志愿活动报名-团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_SIGN_IN_SINGLE = "/modulecultural/activity" +
|
||||
"/vounteer/actviitysignsingle";//志愿活动报名-个人
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_LOG = "/modulecultural/activity/vounteer" +
|
||||
"/actviitylog";//活动日志
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_EDIT = "/modulecultural/activity/vounteer" +
|
||||
"/actviityedit";//修改我发起的活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_MINE = "/modulecultural/activity/vounteer" +
|
||||
"/activitymine";//我的志愿活动
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_CHOOSE_TEAM = "/modulecultural/activity/vounteer" +
|
||||
"/activitychooseteam";//活动报名选择我的团队
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_INFO_DETAIL = "/modulecultural/activity/vounteer" +
|
||||
"/infodetail";//志愿者个人信息
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_INFO_EDIT =
|
||||
"/modulecultural/activity/vounteer/infoedit";//自愿者信息修改
|
||||
public static final String PATH_MODULE_CULTURAL_VOUNTEER_FRAGMENT_TEAM = "/modulecultural/fragment/vounteerteam";
|
||||
//rlv_teams
|
||||
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE = "/modulecultural/activity/sharecultural";//文化分享
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_PUBLISH = "/modulecultural/activity/shareculturalpublish";//发布文化分享
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_MINE_LIST = "/modulecultural/activity/shareculturalmine";//我的文化分享
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_DETAIL = "/modulecultural/activity/shareculturaldetail";//文化分享详情
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_PUBLISH = "/modulecultural/activity" +
|
||||
"/shareculturalpublish";//发布文化分享
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_MINE_LIST = "/modulecultural/activity" +
|
||||
"/shareculturalmine";//我的文化分享
|
||||
public static final String PATH_MODULE_CULTURAL_ACTIVITY_SHARE_DETAIL = "/modulecultural/activity" +
|
||||
"/shareculturaldetail";//文化分享详情
|
||||
|
||||
//===========================ModuleMine=========我的=========================
|
||||
public static final String PATH_MODULE_MINE_COLLECT = "/modulemine/activity/collectlist";//我的收藏列表
|
||||
@ -230,5 +260,6 @@ public class PathConfig {
|
||||
//====================Player=======================
|
||||
public static final String PATH_MODULE_PLAYER_SIMPLE_VIDEO = "/moduleplayer/activity/simpleplayer";//单纯播放器
|
||||
|
||||
|
||||
//====================商城=======================
|
||||
public static final String PATH_MODULE_SHOP_FRAGMENT_SORT_LIST = "/moduleshop/fragment/shopSortList";//商城分类
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ public class BaseUrlApi {
|
||||
|
||||
// public static final String IP = "http://192.168.0.113:7001/usercenter/";/* 测试IP */
|
||||
public static final String IP = "http://49.233.36.36:58099/xzszwhy/";/* 测试IP */
|
||||
public static final String IP_URL = "http://v3.xzszwhy.cn/";/* 测试IP */
|
||||
// public static final String IP = "https://www.wgink.ink/usercenter/";/* 正式IP */
|
||||
// public static final String IP = "https://www.xzszwhy.cn/usercenter/";/* 正式IP */
|
||||
// public static final String BASE_SYSTEM_IP = "http://192.168.0.115:8082/";
|
||||
@ -60,6 +61,7 @@ public class BaseUrlApi {
|
||||
public static final String BASE_CULTURAL_SHARE = BASE_SYSTEM_IP;/* 文化分享 */
|
||||
public static final String BASE_LEGACY_IP = BASE_SYSTEM_IP;//非遗数据库
|
||||
public static final String BASE_NEWS_IP = BASE_SYSTEM_IP;//新闻
|
||||
public static final String BASE_SHOP_IP = IP_URL + "xzshop";//商城
|
||||
// public static final String BASE_PLACE_IP = TEMP_IP + "venuebooking/";/* 场馆 */
|
||||
public static final String BASE_PLACE_IMG_IP = BASE_PLACE_IP + "route/file/download/true/";/* 场馆 */
|
||||
public static final String BASE_CULTURAL_IP = BASE_SYSTEM_IP + "culturalactivity/";/* 文化URL */
|
||||
@ -68,12 +70,6 @@ public class BaseUrlApi {
|
||||
// public static final String BASE_NEWS_DETAIL = "http://192.168.0.104/";//新闻
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static final String BASE_NEWS_DETAIL = BASE_SYSTEM_IP;//新闻
|
||||
// public static final String BASE_IMG_URL = BASE_IP + "route/file/download/true/";
|
||||
// GET /app/appversion/downloadapp/{appVersionId}
|
||||
|
@ -44,6 +44,8 @@ public class BaseUrlInterceptor implements Interceptor {
|
||||
newBaseUrl = HttpUrl.parse(BaseUrlApi.BASE_LIVE_IP);
|
||||
} else if ("social".equals(headerValue)) {
|
||||
newBaseUrl = HttpUrl.parse(BaseUrlApi.BASE_CULTURAL_SHARE);
|
||||
} else if ("shop".equals(headerValue)) {
|
||||
newBaseUrl = HttpUrl.parse(BaseUrlApi.BASE_SHOP_IP);
|
||||
} else {
|
||||
newBaseUrl = oldHttpUrl;
|
||||
}
|
||||
|
@ -12,15 +12,12 @@ import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.sucstepsoft.cm_utils.R;
|
||||
import com.sucstepsoft.cm_utils.constant.PathConfig;
|
||||
import com.sucstepsoft.cm_utils.utils.LogUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.sucstepsoft.cm_utils.R;
|
||||
|
||||
public abstract class BaseFragment extends Fragment {
|
||||
public static final int STATE_LOAD = 1234;//加载中
|
||||
public static final int STATE_ERROR = 1235;//加载失败
|
||||
@ -100,12 +97,16 @@ public abstract class BaseFragment extends Fragment {
|
||||
mIvFragmentEmptyData.setVisibility(View.VISIBLE);
|
||||
mTvFragmentErrorHint.setText("暂无数据");
|
||||
mDataView.setVisibility(View.GONE);
|
||||
mSrlView.finishLoadMore();
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.setEnableLoadMore(true);
|
||||
mSrlView.setEnableRefresh(true);
|
||||
break;
|
||||
case STATE_SUCCESS:
|
||||
mLlHintView.setVisibility(View.GONE);
|
||||
mDataView.setVisibility(View.VISIBLE);
|
||||
mSrlView.finishLoadMore();
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.setEnableLoadMore(true);
|
||||
mSrlView.setEnableRefresh(true);
|
||||
break;
|
||||
@ -115,6 +116,8 @@ public abstract class BaseFragment extends Fragment {
|
||||
mPbFragmentLoading.setVisibility(View.GONE);
|
||||
mIvFragmentEmptyData.setVisibility(View.VISIBLE);
|
||||
mTvFragmentErrorHint.setText("加载失败,请稍后重试");
|
||||
mSrlView.finishLoadMore();
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.setEnableLoadMore(true);
|
||||
mSrlView.setEnableRefresh(true);
|
||||
break;
|
||||
@ -124,6 +127,8 @@ public abstract class BaseFragment extends Fragment {
|
||||
mDataView.setVisibility(View.GONE);
|
||||
mIvFragmentEmptyData.setVisibility(View.GONE);
|
||||
mTvFragmentErrorHint.setText("加载中...");
|
||||
mSrlView.finishLoadMore();
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.setEnableLoadMore(false);
|
||||
mSrlView.setEnableRefresh(false);
|
||||
default:
|
||||
|
@ -1,12 +1,10 @@
|
||||
package com.sucstepsoft.cm_utils.core.widget.base;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.sucstepsoft.cm_utils.R;
|
||||
import com.sucstepsoft.cm_utils.utils.ConvertUtils;
|
||||
@ -60,6 +58,10 @@ public abstract class BaseRecyclerAdapter<T, H extends RecyclerView.ViewHolder>
|
||||
if (mListener != null) {
|
||||
holder.itemView.setOnClickListener(v -> mListener.onItemClickListen(mData.get(position)));
|
||||
}
|
||||
if (mPosListener != null) {
|
||||
holder.itemView.setOnClickListener(v -> mPosListener.onItemClickListener(mData.get(position),
|
||||
position));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -131,6 +133,12 @@ public abstract class BaseRecyclerAdapter<T, H extends RecyclerView.ViewHolder>
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
private OnItemPositionClickListener mPosListener;
|
||||
|
||||
public void addOnItemPosClickListener(OnItemPositionClickListener<T> listener) {
|
||||
this.mPosListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* 条目点击事件回调
|
||||
*
|
||||
@ -139,4 +147,9 @@ public abstract class BaseRecyclerAdapter<T, H extends RecyclerView.ViewHolder>
|
||||
public interface OnItemClicklistener<T> {
|
||||
void onItemClickListen(T t);
|
||||
}
|
||||
|
||||
//带position
|
||||
public interface OnItemPositionClickListener<T> {
|
||||
void onItemClickListener(T t, int p);
|
||||
}
|
||||
}
|
||||
|
@ -12,28 +12,38 @@ public class FragmentUtils {
|
||||
|
||||
|
||||
public static Fragment getActivityFragment() {
|
||||
Fragment fragment = (Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULEACTIVITY_FRAGMENT_MAIN).navigation();
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULEACTIVITY_FRAGMENT_MAIN).navigation();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public static Fragment getHomeFragment() {
|
||||
Fragment fragment = (Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_MAIN_FRAGMENT_MAIN).navigation();
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_MAIN_FRAGMENT_MAIN).navigation();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public static Fragment getPlaceFragment() {
|
||||
Fragment fragment = (Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_PLACE_FRAGMENT_MAIN).navigation();
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_PLACE_FRAGMENT_MAIN).navigation();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public static Fragment getMineFragment() {
|
||||
Fragment fragment = (Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_MINE_FRAGMENT_MAIN).navigation();
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_MINE_FRAGMENT_MAIN).navigation();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public static Fragment getCulturalFragment() {
|
||||
Fragment fragment = (Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_CULTURAL_FRAGMENT_MAIN).navigation();
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_CULTURAL_FRAGMENT_MAIN).navigation();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public static Fragment getShopFragment() {
|
||||
Fragment fragment =
|
||||
(Fragment) ARouter.getInstance().build(PathConfig.PATH_MODULE_SHOP_FRAGMENT_SORT_LIST).navigation();
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
|
@ -96,4 +96,6 @@
|
||||
<attr name="h_textsize" format="dimension" />
|
||||
<attr name="h_pro_step" format="integer" />
|
||||
</declare-styleable>
|
||||
|
||||
|
||||
</resources>
|
@ -136,6 +136,7 @@
|
||||
<color name="text_9d">#9D9D9D</color>
|
||||
<color name="gray_f4">#F4F4F4</color>
|
||||
<color name="gray_f1">#fbf8f1</color>
|
||||
<color name="gray_1">#FBFBFB</color>
|
||||
<color name="gray_df">#EDEDED</color>
|
||||
<color name="gray_ef">#efeff4</color>
|
||||
<color name="line">#efefef</color>
|
||||
@ -182,4 +183,5 @@
|
||||
<color name="btn_blue">#AA1BAAE2</color>
|
||||
<color name="btn_green">#AA37B54A</color>
|
||||
<color name="btn_purple">#AA6B6FD2</color>
|
||||
|
||||
</resources>
|
@ -9,4 +9,5 @@
|
||||
<dimen name="text_14">14sp</dimen>
|
||||
<dimen name="text_15">15sp</dimen>
|
||||
<dimen name="text_16">16sp</dimen>
|
||||
|
||||
</resources>
|
@ -324,4 +324,6 @@
|
||||
<item name="android:gravity">right|center_vertical</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
|
||||
|
||||
</resources>
|
@ -82,15 +82,15 @@ public class MainActivity extends BaseActivity {
|
||||
mIbBack.setVisibility(View.GONE);
|
||||
mRlTitleBar1.setVisibility(View.VISIBLE);
|
||||
mFragments = new ArrayList<>();
|
||||
Fragment activityFragment = FragmentUtils.getActivityFragment();
|
||||
Fragment homefragment = FragmentUtils.getHomeFragment();
|
||||
Fragment shopFragment = FragmentUtils.getShopFragment();
|
||||
Fragment placeFragment = FragmentUtils.getPlaceFragment();
|
||||
Fragment culturalFragment = FragmentUtils.getCulturalFragment();
|
||||
Fragment mineMainFragment = FragmentUtils.getMineFragment();
|
||||
mFragments.add(homefragment);
|
||||
mFragments.add(activityFragment);
|
||||
mFragments.add(placeFragment);
|
||||
mFragments.add(culturalFragment);
|
||||
mFragments.add(shopFragment);
|
||||
mFragments.add(mineMainFragment);
|
||||
String locationCity = UserLgUtils.getCurrentCity();
|
||||
if (TextUtils.isEmpty(locationCity)) {
|
||||
@ -122,22 +122,6 @@ public class MainActivity extends BaseActivity {
|
||||
String city = TextUtils.isEmpty(UserLgUtils.getCurrentCity()) ? "地区选择" : UserLgUtils.getCurrentCity();
|
||||
mTvAppBack.setText(city);
|
||||
return true;
|
||||
} else if (itemId == R.id.tab_activity) {
|
||||
ImmersionBar.with(this)
|
||||
.titleBar(mLlTitleBar)
|
||||
.keyboardEnable(false)
|
||||
.statusBarColor(R.color.titleBar)
|
||||
.statusBarDarkFont(false)
|
||||
.init();
|
||||
//活动
|
||||
mLlTitleBar.setVisibility(View.VISIBLE);
|
||||
mRlTitleBar.setVisibility(View.VISIBLE);
|
||||
mRlTitleBar1.setVisibility(View.VISIBLE);
|
||||
mVpContent.setCurrentItem(1, false);
|
||||
mIvInto.setVisibility(View.GONE);
|
||||
mTvBaseTitle.setText(item.getTitle());
|
||||
mTvAppBack.setVisibility(View.GONE);
|
||||
return true;
|
||||
} else if (itemId == R.id.tab_place) {
|
||||
//场馆
|
||||
ImmersionBar.with(this)
|
||||
@ -152,7 +136,7 @@ public class MainActivity extends BaseActivity {
|
||||
mLlImg.setVisibility(View.VISIBLE);
|
||||
mIvInto.setVisibility(View.VISIBLE);
|
||||
mTvAppBack.setVisibility(View.GONE);
|
||||
mVpContent.setCurrentItem(2, false);
|
||||
mVpContent.setCurrentItem(1, false);
|
||||
mTvBaseTitle.setText(item.getTitle());
|
||||
mIvInto.setOnClickListener(v -> ARouter.getInstance()
|
||||
.build(PathConfig.PATH_MODULE_MAP_SHOW_ICON).navigation());
|
||||
@ -169,7 +153,23 @@ public class MainActivity extends BaseActivity {
|
||||
mRlTitleBar.setVisibility(View.VISIBLE);
|
||||
mRlTitleBar1.setVisibility(View.VISIBLE);
|
||||
mIvInto.setVisibility(View.GONE);
|
||||
mVpContent.setCurrentItem(2, false);
|
||||
mTvBaseTitle.setText(item.getTitle());
|
||||
mTvAppBack.setVisibility(View.GONE);
|
||||
return true;
|
||||
} else if (itemId == R.id.tab_shop) {
|
||||
ImmersionBar.with(this)
|
||||
.titleBar(mLlTitleBar)
|
||||
.keyboardEnable(false)
|
||||
.statusBarColor(R.color.titleBar)
|
||||
.statusBarDarkFont(false)
|
||||
.init();
|
||||
//活动
|
||||
mLlTitleBar.setVisibility(View.VISIBLE);
|
||||
mRlTitleBar.setVisibility(View.VISIBLE);
|
||||
mRlTitleBar1.setVisibility(View.VISIBLE);
|
||||
mVpContent.setCurrentItem(3, false);
|
||||
mIvInto.setVisibility(View.GONE);
|
||||
mTvBaseTitle.setText(item.getTitle());
|
||||
mTvAppBack.setVisibility(View.GONE);
|
||||
return true;
|
||||
@ -359,7 +359,7 @@ public class MainActivity extends BaseActivity {
|
||||
|
||||
public void setCurrentPage(int i, String title) {
|
||||
if (i == 1) {
|
||||
mBnv.setSelectedItemId(R.id.tab_activity);
|
||||
// mBnv.setSelectedItemId(R.id.tab_activity);
|
||||
} else {
|
||||
mBnv.setSelectedItemId(R.id.tab_place);
|
||||
}
|
||||
|
@ -776,7 +776,7 @@ public class HomeFragment extends BaseFragment {
|
||||
*/
|
||||
private void chooseFuncPage(MainFuncBean mainFuncBean) {
|
||||
if ("精彩活动".equals(mainFuncBean.getTitle())) {
|
||||
mMainActivity.setCurrentPage(1, "活动");
|
||||
// TODO mMainActivity.setCurrentPage(1, "活动");
|
||||
} else if ("场馆导航".equals(mainFuncBean.getTitle())) {
|
||||
mMainActivity.setCurrentPage(2, "场馆");
|
||||
} else if ("非遗文化".equals(mainFuncBean.getTitle())) {
|
||||
|
@ -4,10 +4,6 @@
|
||||
android:id="@+id/tab_home"
|
||||
android:icon="@drawable/sel_bottom_tab_home"
|
||||
android:title="首页" />
|
||||
<item
|
||||
android:id="@+id/tab_activity"
|
||||
android:icon="@drawable/sel_bottom_tab_activity"
|
||||
android:title="活动" />
|
||||
<item
|
||||
android:id="@+id/tab_place"
|
||||
android:icon="@drawable/sel_bottom_tab_place"
|
||||
@ -16,6 +12,10 @@
|
||||
android:id="@+id/tab_cultural"
|
||||
android:icon="@drawable/sel_bottom_tab_cultural"
|
||||
android:title="文化" />
|
||||
<item
|
||||
android:id="@+id/tab_shop"
|
||||
android:icon="@drawable/sel_bottom_tab_activity"
|
||||
android:title="商城" />
|
||||
<item
|
||||
android:id="@+id/tab_mine"
|
||||
android:icon="@drawable/sel_bottom_tab_mine"
|
||||
|
@ -0,0 +1,32 @@
|
||||
package com.tenlionsoft.moduleshop.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
import com.tenlionsoft.moduleshop.holder.ShopSortHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShopSortAdapter extends BaseRecyclerAdapter<ShopSortListBean.SubListBean, ShopSortHolder> {
|
||||
|
||||
public ShopSortAdapter(Context ctx, List<ShopSortListBean.SubListBean> list) {
|
||||
super(ctx, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopSortHolder createHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_third_shop_sort, parent, false);
|
||||
return new ShopSortHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindHolder(ShopSortHolder h, int i) {
|
||||
ShopSortListBean.SubListBean bean = mData.get(i);
|
||||
h.mTvName.setText(bean.getName());
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package com.tenlionsoft.moduleshop.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseExpandableListAdapter;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShopSortExAdapter extends BaseExpandableListAdapter {
|
||||
private List<ShopSortListBean> mDatas;
|
||||
private Context mContext;
|
||||
private int mGroupPos = -1;
|
||||
private int mChildPos = -1;
|
||||
|
||||
public ShopSortExAdapter(Context ctx, List<ShopSortListBean> data) {
|
||||
this.mDatas = data;
|
||||
this.mContext = ctx;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGroupCount() {
|
||||
return mDatas.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getChildrenCount(int groupPosition) {
|
||||
return mDatas.get(groupPosition).getSubList().size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopSortListBean getGroup(int groupPosition) {
|
||||
return mDatas.get(groupPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopSortListBean.SubListBean getChild(int groupPosition, int childPosition) {
|
||||
ShopSortListBean.SubListBean bean = mDatas.get(groupPosition).getSubList().get(childPosition);
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getGroupId(int groupPosition) {
|
||||
return groupPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChildId(int groupPosition, int childPosition) {
|
||||
return childPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasStableIds() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_group_shop_sort, parent, false);
|
||||
TextView tvName = view.findViewById(R.id.tv_sort);
|
||||
ShopSortListBean group = getGroup(groupPosition);
|
||||
tvName.setText(group.getName());
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
|
||||
ViewGroup parent) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_child_shop_sort, parent, false);
|
||||
TextView tvName = view.findViewById(R.id.tv_sort);
|
||||
ShopSortListBean.SubListBean child = getChild(groupPosition, childPosition);
|
||||
tvName.setText(child.getName());
|
||||
if (mChildPos == childPosition && mGroupPos == groupPosition) {
|
||||
view.setBackgroundColor(Color.BLUE);
|
||||
} else {
|
||||
view.setBackgroundColor(Color.WHITE);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
public void setDatas(List<ShopSortListBean> datas) {
|
||||
this.mDatas = datas;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
public void setSelectChild(int groupPos, int childPos) {
|
||||
this.mGroupPos = groupPos;
|
||||
this.mChildPos = childPos;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChildSelectable(int groupPosition, int childPosition) {
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package com.tenlionsoft.moduleshop.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
import com.tenlionsoft.moduleshop.holder.ShopSortOneHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 一级分类
|
||||
*/
|
||||
public class ShopSortOneAdapter extends BaseRecyclerAdapter<ShopSortListBean, ShopSortOneHolder> {
|
||||
private int mSelPos = -1;
|
||||
|
||||
public ShopSortOneAdapter(Context ctx, List<ShopSortListBean> list) {
|
||||
super(ctx, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopSortOneHolder createHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_group_shop_sort, parent, false);
|
||||
return new ShopSortOneHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindHolder(ShopSortOneHolder h, int i) {
|
||||
ShopSortListBean bean = mData.get(i);
|
||||
h.mTvName.setText(bean.getName());
|
||||
if (mSelPos == i) {
|
||||
h.mIvIcon.setVisibility(View.VISIBLE);
|
||||
h.itemView.setBackgroundColor(Color.WHITE);
|
||||
h.mTvName.setTextColor(Color.parseColor("#9F1512"));
|
||||
} else {
|
||||
h.itemView.setBackgroundColor(Color.parseColor("#FBFBFB"));
|
||||
h.mIvIcon.setVisibility(View.INVISIBLE);
|
||||
h.mTvName.setTextColor(Color.BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelect(int selPos) {
|
||||
this.mSelPos = selPos;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package com.tenlionsoft.moduleshop.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
import com.tenlionsoft.moduleshop.holder.ShopSortSecondHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 二级分类
|
||||
*/
|
||||
public class ShopSortSecondAdapter extends BaseRecyclerAdapter<ShopSortListBean.SubListBean, ShopSortSecondHolder> {
|
||||
|
||||
public ShopSortSecondAdapter(Context ctx, List<ShopSortListBean.SubListBean> list) {
|
||||
super(ctx, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShopSortSecondHolder createHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.item_second_shop_sort, parent, false);
|
||||
return new ShopSortSecondHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindHolder(ShopSortSecondHolder h, int i) {
|
||||
ShopSortListBean.SubListBean bean = mData.get(i);
|
||||
h.mTvSecondName.setText(bean.getName());
|
||||
if (bean.getSubList() != null && bean.getSubList().size() > 0) {
|
||||
ShopSortAdapter adapter = new ShopSortAdapter(mContext, bean.getSubList());
|
||||
h.mRlvSor.setVisibility(View.VISIBLE);
|
||||
h.mRlvSor.setLayoutManager(new GridLayoutManager(mContext, 3));
|
||||
h.mRlvSor.setAdapter(adapter);
|
||||
h.mLlEmpty.setVisibility(View.GONE);
|
||||
adapter.addOnItemPosClickListener((subListBean, p) -> {
|
||||
if (mItemClick != null) {
|
||||
mItemClick.click(subListBean, p);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
h.mRlvSor.setVisibility(View.GONE);
|
||||
h.mLlEmpty.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private ItemClick mItemClick;
|
||||
|
||||
public void addClick(ItemClick click) {
|
||||
this.mItemClick = click;
|
||||
}
|
||||
|
||||
public interface ItemClick {
|
||||
void click(ShopSortListBean.SubListBean b, int p);
|
||||
}
|
||||
}
|
@ -0,0 +1,199 @@
|
||||
package com.tenlionsoft.moduleshop.beans;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShopListBean {
|
||||
|
||||
private int page;
|
||||
private List<RowsBean> rows;
|
||||
private int total;
|
||||
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public List<RowsBean> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
public void setRows(List<RowsBean> rows) {
|
||||
this.rows = rows;
|
||||
}
|
||||
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setTotal(int total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public static class RowsBean {
|
||||
private String categoryId;
|
||||
private String categoryName;
|
||||
private String categorySubId;
|
||||
private String categorySubName;
|
||||
private int goodStar;
|
||||
private String goodsDescription;
|
||||
private String goodsIcon;
|
||||
private String goodsId;
|
||||
private int goodsIsPopular;
|
||||
private String goodsName;
|
||||
private String goodsNotFreight;
|
||||
private int goodsPrice;
|
||||
private int goodsSalesVolume;
|
||||
private int goodsSort;
|
||||
private int paymentType;
|
||||
private String shopId;
|
||||
private String shopName;
|
||||
private int userEvaluate;
|
||||
|
||||
public String getCategoryId() {
|
||||
return categoryId;
|
||||
}
|
||||
|
||||
public void setCategoryId(String categoryId) {
|
||||
this.categoryId = categoryId;
|
||||
}
|
||||
|
||||
public String getCategoryName() {
|
||||
return categoryName;
|
||||
}
|
||||
|
||||
public void setCategoryName(String categoryName) {
|
||||
this.categoryName = categoryName;
|
||||
}
|
||||
|
||||
public String getCategorySubId() {
|
||||
return categorySubId;
|
||||
}
|
||||
|
||||
public void setCategorySubId(String categorySubId) {
|
||||
this.categorySubId = categorySubId;
|
||||
}
|
||||
|
||||
public String getCategorySubName() {
|
||||
return categorySubName;
|
||||
}
|
||||
|
||||
public void setCategorySubName(String categorySubName) {
|
||||
this.categorySubName = categorySubName;
|
||||
}
|
||||
|
||||
public int getGoodStar() {
|
||||
return goodStar;
|
||||
}
|
||||
|
||||
public void setGoodStar(int goodStar) {
|
||||
this.goodStar = goodStar;
|
||||
}
|
||||
|
||||
public String getGoodsDescription() {
|
||||
return goodsDescription;
|
||||
}
|
||||
|
||||
public void setGoodsDescription(String goodsDescription) {
|
||||
this.goodsDescription = goodsDescription;
|
||||
}
|
||||
|
||||
public String getGoodsIcon() {
|
||||
return goodsIcon;
|
||||
}
|
||||
|
||||
public void setGoodsIcon(String goodsIcon) {
|
||||
this.goodsIcon = goodsIcon;
|
||||
}
|
||||
|
||||
public String getGoodsId() {
|
||||
return goodsId;
|
||||
}
|
||||
|
||||
public void setGoodsId(String goodsId) {
|
||||
this.goodsId = goodsId;
|
||||
}
|
||||
|
||||
public int getGoodsIsPopular() {
|
||||
return goodsIsPopular;
|
||||
}
|
||||
|
||||
public void setGoodsIsPopular(int goodsIsPopular) {
|
||||
this.goodsIsPopular = goodsIsPopular;
|
||||
}
|
||||
|
||||
public String getGoodsName() {
|
||||
return goodsName;
|
||||
}
|
||||
|
||||
public void setGoodsName(String goodsName) {
|
||||
this.goodsName = goodsName;
|
||||
}
|
||||
|
||||
public String getGoodsNotFreight() {
|
||||
return goodsNotFreight;
|
||||
}
|
||||
|
||||
public void setGoodsNotFreight(String goodsNotFreight) {
|
||||
this.goodsNotFreight = goodsNotFreight;
|
||||
}
|
||||
|
||||
public int getGoodsPrice() {
|
||||
return goodsPrice;
|
||||
}
|
||||
|
||||
public void setGoodsPrice(int goodsPrice) {
|
||||
this.goodsPrice = goodsPrice;
|
||||
}
|
||||
|
||||
public int getGoodsSalesVolume() {
|
||||
return goodsSalesVolume;
|
||||
}
|
||||
|
||||
public void setGoodsSalesVolume(int goodsSalesVolume) {
|
||||
this.goodsSalesVolume = goodsSalesVolume;
|
||||
}
|
||||
|
||||
public int getGoodsSort() {
|
||||
return goodsSort;
|
||||
}
|
||||
|
||||
public void setGoodsSort(int goodsSort) {
|
||||
this.goodsSort = goodsSort;
|
||||
}
|
||||
|
||||
public int getPaymentType() {
|
||||
return paymentType;
|
||||
}
|
||||
|
||||
public void setPaymentType(int paymentType) {
|
||||
this.paymentType = paymentType;
|
||||
}
|
||||
|
||||
public String getShopId() {
|
||||
return shopId;
|
||||
}
|
||||
|
||||
public void setShopId(String shopId) {
|
||||
this.shopId = shopId;
|
||||
}
|
||||
|
||||
public String getShopName() {
|
||||
return shopName;
|
||||
}
|
||||
|
||||
public void setShopName(String shopName) {
|
||||
this.shopName = shopName;
|
||||
}
|
||||
|
||||
public int getUserEvaluate() {
|
||||
return userEvaluate;
|
||||
}
|
||||
|
||||
public void setUserEvaluate(int userEvaluate) {
|
||||
this.userEvaluate = userEvaluate;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
package com.tenlionsoft.moduleshop.beans;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShopSortListBean {
|
||||
|
||||
private String code;
|
||||
private String icon;
|
||||
private String id;
|
||||
private boolean isParent;
|
||||
private String name;
|
||||
private String pId;
|
||||
private String pName;
|
||||
private List<SubListBean> subList;
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setIcon(String icon) {
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public boolean isIsParent() {
|
||||
return isParent;
|
||||
}
|
||||
|
||||
public void setIsParent(boolean isParent) {
|
||||
this.isParent = isParent;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPId() {
|
||||
return pId;
|
||||
}
|
||||
|
||||
public void setPId(String pId) {
|
||||
this.pId = pId;
|
||||
}
|
||||
|
||||
public String getPName() {
|
||||
return pName;
|
||||
}
|
||||
|
||||
public void setPName(String pName) {
|
||||
this.pName = pName;
|
||||
}
|
||||
|
||||
public List<SubListBean> getSubList() {
|
||||
return subList;
|
||||
}
|
||||
|
||||
public void setSubList(List<SubListBean> subList) {
|
||||
this.subList = subList;
|
||||
}
|
||||
|
||||
public static class SubListBean {
|
||||
private String code;
|
||||
private String icon;
|
||||
private String id;
|
||||
private boolean isParent;
|
||||
private String name;
|
||||
private String pId;
|
||||
private String pName;
|
||||
private List<SubListBean> subList;
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setIcon(String icon) {
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public boolean isIsParent() {
|
||||
return isParent;
|
||||
}
|
||||
|
||||
public void setIsParent(boolean isParent) {
|
||||
this.isParent = isParent;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPId() {
|
||||
return pId;
|
||||
}
|
||||
|
||||
public void setPId(String pId) {
|
||||
this.pId = pId;
|
||||
}
|
||||
|
||||
public String getPName() {
|
||||
return pName;
|
||||
}
|
||||
|
||||
public void setPName(String pName) {
|
||||
this.pName = pName;
|
||||
}
|
||||
|
||||
public List<SubListBean> getSubList() {
|
||||
return subList;
|
||||
}
|
||||
|
||||
public void setSubList(List<SubListBean> subList) {
|
||||
this.subList = subList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,152 @@
|
||||
package com.tenlionsoft.moduleshop.fragments;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.sucstepsoft.cm_utils.constant.PathConfig;
|
||||
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
|
||||
import com.sucstepsoft.cm_utils.core.widget.base.BaseFragment;
|
||||
import com.sucstepsoft.cm_utils.utils.ExceptionHandler;
|
||||
import com.sucstepsoft.cm_utils.utils.toast.ToastUtils;
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
import com.tengshisoft.moduleshop.R2;
|
||||
import com.tenlionsoft.moduleshop.adapter.ShopSortOneAdapter;
|
||||
import com.tenlionsoft.moduleshop.adapter.ShopSortSecondAdapter;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
import com.tenlionsoft.moduleshop.net.ShopApi;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* 商城分类页面
|
||||
*/
|
||||
@Route(path = PathConfig.PATH_MODULE_SHOP_FRAGMENT_SORT_LIST)
|
||||
public class ShopSortFragment extends BaseFragment {
|
||||
@BindView(R2.id.ll_empty)
|
||||
LinearLayout mLlEmpty;
|
||||
@BindView(R2.id.rlv_one_sort)
|
||||
RecyclerView mRlvOneSort;
|
||||
@BindView(R2.id.rlv_sort)
|
||||
RecyclerView mRlvSort;
|
||||
private Unbinder mBind;
|
||||
private List<ShopSortListBean> mDatas;
|
||||
private List<ShopSortListBean.SubListBean> mSubListBeans = new ArrayList<>();
|
||||
private ShopSortSecondAdapter mSecondAdapter;
|
||||
private ShopSortOneAdapter mOneAdapter;
|
||||
|
||||
@Override
|
||||
protected int getContentViewId() {
|
||||
return R.layout.fragment_shop_sort;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setDataToView(View dataView) {
|
||||
mBind = ButterKnife.bind(this, dataView);
|
||||
setStateView(STATE_LOAD);
|
||||
mDatas = new ArrayList<>();
|
||||
mOneAdapter = new ShopSortOneAdapter(mActivity, mDatas);
|
||||
mRlvOneSort.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
mRlvOneSort.setAdapter(mOneAdapter);
|
||||
mOneAdapter.addOnItemPosClickListener((shopSortListBean, p) -> {
|
||||
mOneAdapter.setSelect(p);
|
||||
mSubListBeans = shopSortListBean.getSubList();
|
||||
mSecondAdapter.setData(mSubListBeans);
|
||||
if (mSubListBeans.size() > 0) {
|
||||
mLlEmpty.setVisibility(View.GONE);
|
||||
} else {
|
||||
mLlEmpty.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
mSecondAdapter = new ShopSortSecondAdapter(mActivity, mSubListBeans);
|
||||
mRlvSort.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
mRlvSort.setAdapter(mSecondAdapter);
|
||||
mSecondAdapter.addClick(new ShopSortSecondAdapter.ItemClick() {
|
||||
@Override
|
||||
public void click(ShopSortListBean.SubListBean b, int p) {
|
||||
ToastUtils.show("sss==" + b.getName());
|
||||
}
|
||||
});
|
||||
getShopCategoryList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品分类
|
||||
*/
|
||||
private void getShopCategoryList() {
|
||||
RetrofitManager.getInstance()
|
||||
.create(ShopApi.class)
|
||||
.getShopCategoryList()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<List<ShopSortListBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(List<ShopSortListBean> shopSortListBeans) {
|
||||
if (null != shopSortListBeans && shopSortListBeans.size() > 0) {
|
||||
setStateView(STATE_SUCCESS);
|
||||
mDatas = shopSortListBeans;
|
||||
mOneAdapter.setSelect(0);
|
||||
mOneAdapter.setData(mDatas);
|
||||
mSubListBeans = mDatas.get(0).getSubList();
|
||||
if (mSubListBeans.size() > 0) {
|
||||
mLlEmpty.setVisibility(View.GONE);
|
||||
} else {
|
||||
mLlEmpty.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mSecondAdapter.setData(mSubListBeans);
|
||||
} else {
|
||||
setStateView(STATE_EMPTY);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
setStateView(STATE_ERROR);
|
||||
ExceptionHandler.handleException(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mBind != null) {
|
||||
mBind.unbind();
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void refreshView() {
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.finishLoadMore();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadMoreData() {
|
||||
mSrlView.finishRefresh();
|
||||
mSrlView.finishLoadMore();
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.tenlionsoft.moduleshop.holder;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
|
||||
public class ShopSortHolder extends RecyclerView.ViewHolder {
|
||||
public TextView mTvName;
|
||||
public ImageView mIvIcon;
|
||||
|
||||
public ShopSortHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
mTvName=itemView.findViewById(R.id.tv_second);
|
||||
mIvIcon=itemView.findViewById(R.id.iv_icon);
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.tenlionsoft.moduleshop.holder;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
|
||||
public class ShopSortOneHolder extends RecyclerView.ViewHolder {
|
||||
public TextView mTvName;
|
||||
public ImageView mIvIcon;
|
||||
|
||||
public ShopSortOneHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
mTvName = itemView.findViewById(R.id.tv_sort);
|
||||
mIvIcon = itemView.findViewById(R.id.iv_indic);
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.tenlionsoft.moduleshop.holder;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.tengshisoft.moduleshop.R;
|
||||
|
||||
public class ShopSortSecondHolder extends RecyclerView.ViewHolder {
|
||||
public TextView mTvSecondName;
|
||||
public RecyclerView mRlvSor;
|
||||
public LinearLayout mLlEmpty;
|
||||
|
||||
public ShopSortSecondHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
mTvSecondName = itemView.findViewById(R.id.tv_second);
|
||||
mRlvSor = itemView.findViewById(R.id.rlv_third_sort);
|
||||
mLlEmpty = itemView.findViewById(R.id.ll_empty);
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.tenlionsoft.moduleshop.net;
|
||||
|
||||
import com.tenlionsoft.moduleshop.beans.ShopListBean;
|
||||
import com.tenlionsoft.moduleshop.beans.ShopSortListBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface ShopApi {
|
||||
//获取商品分类
|
||||
@Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"})
|
||||
@GET("app/category/listztreerelease")
|
||||
Observable<List<ShopSortListBean>> getShopCategoryList();
|
||||
|
||||
|
||||
//根据分类ID商品检索
|
||||
@Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"})
|
||||
@GET("app/shopgoods/solrrelease")
|
||||
Observable<ShopListBean> getShopList(@Query("page") String page,
|
||||
@Query("rows") String rows,
|
||||
@Query("categoryId") String categoryId);
|
||||
|
||||
/**
|
||||
* 商品检索
|
||||
*
|
||||
* @param page
|
||||
* @param rows
|
||||
* @param categoryId 商品分类
|
||||
* @param name 商品名称
|
||||
* @param payType 支付类型 1 线上支付 2到店支付
|
||||
* @param uE 商品评分
|
||||
* @return
|
||||
*/
|
||||
@Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"})
|
||||
@GET("app/shopgoods/solrrelease")
|
||||
Observable<ShopListBean> getShopList(@Query("page") String page,
|
||||
@Query("rows") String rows,
|
||||
@Query("categoryId") String categoryId,
|
||||
@Query("goodsName") String name,
|
||||
@Query("paymentType") String payType,
|
||||
@Query("userEvaluate") String uE);
|
||||
}
|
BIN
moduleshop/src/main/res/drawable-xhdpi/ic_catelog_indic_line.png
Normal file
BIN
moduleshop/src/main/res/drawable-xhdpi/ic_catelog_indic_line.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 168 B |
54
moduleshop/src/main/res/layout/fragment_shop_sort.xml
Normal file
54
moduleshop/src/main/res/layout/fragment_shop_sort.xml
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/gray_1">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rlv_one_sort"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.3" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.7"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rlv_sort"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:src="@drawable/ic_empty_data" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="暂无数据"
|
||||
android:textColor="@color/gray_text" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
19
moduleshop/src/main/res/layout/item_child_shop_sort.xml
Normal file
19
moduleshop/src/main/res/layout/item_child_shop_sort.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_sort"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:padding="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp"
|
||||
tools:text="二级分类" />
|
||||
</LinearLayout>
|
25
moduleshop/src/main/res/layout/item_group_shop_sort.xml
Normal file
25
moduleshop/src/main/res/layout/item_group_shop_sort.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_indic"
|
||||
android:layout_width="10dp"
|
||||
android:layout_height="15dp"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/ic_catelog_indic_line" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_sort"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:padding="15dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
tools:text="一级分类" />
|
||||
</LinearLayout>
|
68
moduleshop/src/main/res/layout/item_second_shop_sort.xml
Normal file
68
moduleshop/src/main/res/layout/item_second_shop_sort.xml
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout 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:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_second"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="5dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="二级分类" />
|
||||
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
app:cardElevation="1dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="10dp">
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rlv_third_sort"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginBottom="5dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:src="@drawable/ic_empty_data" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="暂无数据"
|
||||
android:textSize="14sp" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</LinearLayout>
|
25
moduleshop/src/main/res/layout/item_third_shop_sort.xml
Normal file
25
moduleshop/src/main/res/layout/item_third_shop_sort.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_icon"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:scaleType="fitXY" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_second"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="5dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp"
|
||||
tools:text="三级分类" />
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in New Issue
Block a user