|
@@ -1,20 +1,70 @@
|
|
|
package com.yunbao.main.views;
|
|
package com.yunbao.main.views;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
|
|
|
+import android.graphics.Typeface;
|
|
|
|
|
+import android.view.Gravity;
|
|
|
import android.view.View;
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
|
|
|
+import android.widget.HorizontalScrollView;
|
|
|
|
|
+import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
|
|
+import androidx.fragment.app.Fragment;
|
|
|
|
|
+import androidx.fragment.app.FragmentActivity;
|
|
|
|
|
+import androidx.viewpager2.adapter.FragmentStateAdapter;
|
|
|
|
|
+import androidx.viewpager2.widget.ViewPager2;
|
|
|
|
|
+
|
|
|
import com.yunbao.main.R;
|
|
import com.yunbao.main.R;
|
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Arrays;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
- * 乡村云店页面ViewHolder
|
|
|
|
|
- * 展示乡村地区的商品和服务
|
|
|
|
|
|
|
+ * 农村电商主页ViewHolder
|
|
|
|
|
+ * 展示地区选择、商品分类、推荐商品等功能
|
|
|
*/
|
|
*/
|
|
|
public class MainShopRuralViewHolder extends AbsMainViewHolder implements View.OnClickListener {
|
|
public class MainShopRuralViewHolder extends AbsMainViewHolder implements View.OnClickListener {
|
|
|
|
|
|
|
|
- private TextView mTitleText;
|
|
|
|
|
- private TextView mDescriptionText;
|
|
|
|
|
|
|
+ // 顶部控件
|
|
|
|
|
+ private LinearLayout mLocationLayout;
|
|
|
|
|
+ private TextView mLocationText;
|
|
|
|
|
+
|
|
|
|
|
+ // 地区标签相关
|
|
|
|
|
+ private HorizontalScrollView mRegionScrollView;
|
|
|
|
|
+ private LinearLayout mRegionContainer;
|
|
|
|
|
+ private List<RegionTabItem> mRegionTabItems;
|
|
|
|
|
+ private int mCurrentSelectedRegion = 0;
|
|
|
|
|
+
|
|
|
|
|
+ // 地区数据
|
|
|
|
|
+ private List<String> mRegionList;
|
|
|
|
|
+
|
|
|
|
|
+ // 导航栏和ViewPager
|
|
|
|
|
+ private TextView mNavHome;
|
|
|
|
|
+ private TextView mNavAllGoods;
|
|
|
|
|
+ private TextView mNavReview;
|
|
|
|
|
+ private ViewPager2 mViewPager;
|
|
|
|
|
+ private ShopContentAdapter mContentAdapter;
|
|
|
|
|
+ private int mCurrentNavIndex = 0;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 地区标签项数据类
|
|
|
|
|
+ */
|
|
|
|
|
+ private static class RegionTabItem {
|
|
|
|
|
+ LinearLayout container;
|
|
|
|
|
+ TextView textView;
|
|
|
|
|
+ View underline;
|
|
|
|
|
+ String regionName;
|
|
|
|
|
+ int index;
|
|
|
|
|
+
|
|
|
|
|
+ RegionTabItem(LinearLayout container, TextView textView, View underline, String regionName, int index) {
|
|
|
|
|
+ this.container = container;
|
|
|
|
|
+ this.textView = textView;
|
|
|
|
|
+ this.underline = underline;
|
|
|
|
|
+ this.regionName = regionName;
|
|
|
|
|
+ this.index = index;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
public MainShopRuralViewHolder(Context context, ViewGroup parentView) {
|
|
public MainShopRuralViewHolder(Context context, ViewGroup parentView) {
|
|
|
super(context, parentView);
|
|
super(context, parentView);
|
|
@@ -22,20 +72,260 @@ public class MainShopRuralViewHolder extends AbsMainViewHolder implements View.O
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
protected int getLayoutId() {
|
|
protected int getLayoutId() {
|
|
|
- return R.layout.view_main_shop_rural;
|
|
|
|
|
|
|
+ return R.layout.item_main_shop_rural;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void init() {
|
|
public void init() {
|
|
|
- mTitleText = findViewById(R.id.tv_title);
|
|
|
|
|
- mDescriptionText = findViewById(R.id.tv_description);
|
|
|
|
|
|
|
+ // 初始化顶部控件
|
|
|
|
|
+ mLocationLayout = findViewById(R.id.ll_location);
|
|
|
|
|
+ mLocationText = findViewById(R.id.tv_location);
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化地区标签容器
|
|
|
|
|
+ mRegionScrollView = findViewById(R.id.hsv_region);
|
|
|
|
|
+ mRegionContainer = findViewById(R.id.ll_region_container);
|
|
|
|
|
+ mRegionTabItems = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化地区数据
|
|
|
|
|
+ initRegionData();
|
|
|
|
|
+
|
|
|
|
|
+ // 动态创建地区标签
|
|
|
|
|
+ createRegionTabs();
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化导航栏和ViewPager
|
|
|
|
|
+ initNavigationTabs();
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化商品分类
|
|
|
|
|
+ initCategoryItems();
|
|
|
|
|
+
|
|
|
|
|
+ // 设置点击事件
|
|
|
|
|
+ setClickListeners();
|
|
|
|
|
+
|
|
|
|
|
+ // 设置示例数据
|
|
|
|
|
+ setupSampleData();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 初始化地区数据
|
|
|
|
|
+ */
|
|
|
|
|
+ private void initRegionData() {
|
|
|
|
|
+ // 示例地区数据,实际项目中可以从服务器获取或配置文件读取
|
|
|
|
|
+ mRegionList = Arrays.asList(
|
|
|
|
|
+ "山东", "北京", "湖北", "上海", "河南",
|
|
|
|
|
+ "陕西", "四川", "广东", "江苏", "浙江",
|
|
|
|
|
+ "湖南", "安徽", "河北", "山西", "辽宁"
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 动态创建地区标签
|
|
|
|
|
+ */
|
|
|
|
|
+ private void createRegionTabs() {
|
|
|
|
|
+ if (mRegionContainer == null || mRegionList == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 清空现有标签
|
|
|
|
|
+ mRegionContainer.removeAllViews();
|
|
|
|
|
+ mRegionTabItems.clear();
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 0; i < mRegionList.size(); i++) {
|
|
|
|
|
+ String regionName = mRegionList.get(i);
|
|
|
|
|
+ RegionTabItem tabItem = createRegionTabItem(regionName, i);
|
|
|
|
|
+ mRegionTabItems.add(tabItem);
|
|
|
|
|
+ mRegionContainer.addView(tabItem.container);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 设置默认选中第一个
|
|
|
|
|
+ if (!mRegionTabItems.isEmpty()) {
|
|
|
|
|
+ updateRegionSelection(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 创建单个地区标签项
|
|
|
|
|
+ */
|
|
|
|
|
+ private RegionTabItem createRegionTabItem(String regionName, int index) {
|
|
|
|
|
+ // 创建容器
|
|
|
|
|
+ LinearLayout container = new LinearLayout(mContext);
|
|
|
|
|
+ LinearLayout.LayoutParams containerParams = new LinearLayout.LayoutParams(
|
|
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT
|
|
|
|
|
+ );
|
|
|
|
|
+ containerParams.rightMargin = dpToPx(24);
|
|
|
|
|
+ container.setLayoutParams(containerParams);
|
|
|
|
|
+ container.setOrientation(LinearLayout.VERTICAL);
|
|
|
|
|
+ container.setGravity(Gravity.CENTER);
|
|
|
|
|
+ container.setPadding(dpToPx(12), dpToPx(6), dpToPx(12), dpToPx(6));
|
|
|
|
|
+ container.setTag(index); // 设置标签用于点击识别
|
|
|
|
|
+
|
|
|
|
|
+ // 创建文本
|
|
|
|
|
+ TextView textView = new TextView(mContext);
|
|
|
|
|
+ LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(
|
|
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT
|
|
|
|
|
+ );
|
|
|
|
|
+ textView.setLayoutParams(textParams);
|
|
|
|
|
+ textView.setText(regionName);
|
|
|
|
|
+ textView.setTextSize(14);
|
|
|
|
|
+ textView.setTextColor(0xFF999999); // 默认未选中颜色
|
|
|
|
|
+
|
|
|
|
|
+ // 创建下划线
|
|
|
|
|
+ View underline = new View(mContext);
|
|
|
|
|
+ LinearLayout.LayoutParams lineParams = new LinearLayout.LayoutParams(
|
|
|
|
|
+ dpToPx(20),
|
|
|
|
|
+ dpToPx(2)
|
|
|
|
|
+ );
|
|
|
|
|
+ lineParams.topMargin = dpToPx(4);
|
|
|
|
|
+ underline.setLayoutParams(lineParams);
|
|
|
|
|
+ underline.setBackgroundColor(0xFF333333);
|
|
|
|
|
+ underline.setVisibility(View.INVISIBLE); // 默认隐藏
|
|
|
|
|
+
|
|
|
|
|
+ // 添加到容器
|
|
|
|
|
+ container.addView(textView);
|
|
|
|
|
+ container.addView(underline);
|
|
|
|
|
+
|
|
|
|
|
+ // 设置点击事件
|
|
|
|
|
+ container.setOnClickListener(this);
|
|
|
|
|
+
|
|
|
|
|
+ return new RegionTabItem(container, textView, underline, regionName, index);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * dp转px
|
|
|
|
|
+ */
|
|
|
|
|
+ private int dpToPx(int dp) {
|
|
|
|
|
+ float density = mContext.getResources().getDisplayMetrics().density;
|
|
|
|
|
+ return (int) (dp * density + 0.5f);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新地区选中状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private void updateRegionSelection(int selectedIndex) {
|
|
|
|
|
+ if (selectedIndex < 0 || selectedIndex >= mRegionTabItems.size()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ mCurrentSelectedRegion = selectedIndex;
|
|
|
|
|
+
|
|
|
|
|
+ // 更新所有标签状态
|
|
|
|
|
+ for (int i = 0; i < mRegionTabItems.size(); i++) {
|
|
|
|
|
+ RegionTabItem item = mRegionTabItems.get(i);
|
|
|
|
|
+ if (i == selectedIndex) {
|
|
|
|
|
+ // 选中状态
|
|
|
|
|
+ item.textView.setTextColor(0xFF333333);
|
|
|
|
|
+ item.textView.setTypeface(null, Typeface.BOLD);
|
|
|
|
|
+ item.underline.setVisibility(View.VISIBLE);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 未选中状态
|
|
|
|
|
+ item.textView.setTextColor(0xFF999999);
|
|
|
|
|
+ item.textView.setTypeface(null, Typeface.NORMAL);
|
|
|
|
|
+ item.underline.setVisibility(View.INVISIBLE);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 初始化导航栏和ViewPager
|
|
|
|
|
+ */
|
|
|
|
|
+ private void initNavigationTabs() {
|
|
|
|
|
+ // 获取导航栏控件
|
|
|
|
|
+ mNavHome = findViewById(R.id.tv_nav_home);
|
|
|
|
|
+ mNavAllGoods = findViewById(R.id.tv_nav_all_goods);
|
|
|
|
|
+ mNavReview = findViewById(R.id.tv_nav_review);
|
|
|
|
|
+
|
|
|
|
|
+ // 获取ViewPager
|
|
|
|
|
+ mViewPager = findViewById(R.id.vp_content);
|
|
|
|
|
+
|
|
|
|
|
+ // 设置ViewPager适配器
|
|
|
|
|
+ if (mContext instanceof FragmentActivity) {
|
|
|
|
|
+ mContentAdapter = new ShopContentAdapter((FragmentActivity) mContext);
|
|
|
|
|
+ mViewPager.setAdapter(mContentAdapter);
|
|
|
|
|
+
|
|
|
|
|
+ // 设置ViewPager页面切换监听
|
|
|
|
|
+ mViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onPageSelected(int position) {
|
|
|
|
|
+ super.onPageSelected(position);
|
|
|
|
|
+ updateNavigationSelection(position);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 初始化商品分类项
|
|
|
|
|
+ */
|
|
|
|
|
+ private void initCategoryItems() {
|
|
|
|
|
+ // 商品分类项在布局中已经设置好了
|
|
|
|
|
+ // 可以在这里添加分类点击逻辑
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置点击事件监听器
|
|
|
|
|
+ */
|
|
|
|
|
+ private void setClickListeners() {
|
|
|
|
|
+ if (mLocationLayout != null) {
|
|
|
|
|
+ mLocationLayout.setOnClickListener(this);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 设置导航栏点击事件
|
|
|
|
|
+ if (mNavHome != null) mNavHome.setOnClickListener(this);
|
|
|
|
|
+ if (mNavAllGoods != null) mNavAllGoods.setOnClickListener(this);
|
|
|
|
|
+ if (mNavReview != null) mNavReview.setOnClickListener(this);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置示例数据
|
|
|
|
|
+ */
|
|
|
|
|
+ private void setupSampleData() {
|
|
|
|
|
+ // 设置地区文本
|
|
|
|
|
+ if (mLocationText != null) {
|
|
|
|
|
+ mLocationText.setText("北京市");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 设置默认导航选中状态
|
|
|
|
|
+ updateNavigationSelection(0);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置地区数据(外部调用)
|
|
|
|
|
+ */
|
|
|
|
|
+ public void setRegionData(List<String> regionList) {
|
|
|
|
|
+ if (regionList != null && !regionList.isEmpty()) {
|
|
|
|
|
+ mRegionList = new ArrayList<>(regionList);
|
|
|
|
|
+ createRegionTabs();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 设置初始内容
|
|
|
|
|
- mTitleText.setText("乡村云店");
|
|
|
|
|
- mDescriptionText.setText("为乡村地区提供优质商品和服务");
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取当前选中的地区
|
|
|
|
|
+ */
|
|
|
|
|
+ public String getCurrentSelectedRegion() {
|
|
|
|
|
+ if (mCurrentSelectedRegion >= 0 && mCurrentSelectedRegion < mRegionList.size()) {
|
|
|
|
|
+ return mRegionList.get(mCurrentSelectedRegion);
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 设置点击监听
|
|
|
|
|
- mTitleText.setOnClickListener(this);
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置选中的地区
|
|
|
|
|
+ */
|
|
|
|
|
+ public void setSelectedRegion(int index) {
|
|
|
|
|
+ updateRegionSelection(index);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置选中的地区
|
|
|
|
|
+ */
|
|
|
|
|
+ public void setSelectedRegion(String regionName) {
|
|
|
|
|
+ if (mRegionList != null) {
|
|
|
|
|
+ int index = mRegionList.indexOf(regionName);
|
|
|
|
|
+ if (index >= 0) {
|
|
|
|
|
+ updateRegionSelection(index);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -47,18 +337,187 @@ public class MainShopRuralViewHolder extends AbsMainViewHolder implements View.O
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 加载乡村云店数据
|
|
|
|
|
|
|
+ * 加载农村电商数据
|
|
|
*/
|
|
*/
|
|
|
private void loadRuralShopData() {
|
|
private void loadRuralShopData() {
|
|
|
- // TODO: 实现乡村云店数据加载逻辑
|
|
|
|
|
- // 例如:加载乡村特色商品、农产品等
|
|
|
|
|
|
|
+ // TODO: 实现农村电商数据加载逻辑
|
|
|
|
|
+ // 1. 加载地区列表
|
|
|
|
|
+ // 2. 加载推荐商品
|
|
|
|
|
+ // 3. 加载商品分类
|
|
|
|
|
+ // 4. 加载广告横幅
|
|
|
|
|
+
|
|
|
|
|
+ // 示例:模拟数据加载完成
|
|
|
|
|
+ setupSampleData();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
public void onClick(View v) {
|
|
|
int id = v.getId();
|
|
int id = v.getId();
|
|
|
- if (id == R.id.tv_title) {
|
|
|
|
|
- // 处理标题点击事件
|
|
|
|
|
|
|
+ if (id == R.id.ll_location) {
|
|
|
|
|
+ // 点击地区选择
|
|
|
|
|
+ onLocationClick();
|
|
|
|
|
+ } else if (id == R.id.tv_nav_home) {
|
|
|
|
|
+ // 点击首页导航
|
|
|
|
|
+ switchToPage(0);
|
|
|
|
|
+ } else if (id == R.id.tv_nav_all_goods) {
|
|
|
|
|
+ // 点击全部商品导航
|
|
|
|
|
+ switchToPage(1);
|
|
|
|
|
+ } else if (id == R.id.tv_nav_review) {
|
|
|
|
|
+ // 点击评价导航
|
|
|
|
|
+ switchToPage(2);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 检查是否是地区标签点击
|
|
|
|
|
+ Object tag = v.getTag();
|
|
|
|
|
+ if (tag instanceof Integer) {
|
|
|
|
|
+ int regionIndex = (Integer) tag;
|
|
|
|
|
+ updateRegionSelection(regionIndex);
|
|
|
|
|
+ onRegionClick(mRegionList.get(regionIndex));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 处理地区选择点击
|
|
|
|
|
+ */
|
|
|
|
|
+ private void onLocationClick() {
|
|
|
|
|
+ // TODO: 打开地区选择页面
|
|
|
|
|
+ // 例如:启动城市选择Activity
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 处理地区标签点击
|
|
|
|
|
+ */
|
|
|
|
|
+ private void onRegionClick(String regionName) {
|
|
|
|
|
+ // TODO: 根据选中的地区加载对应数据
|
|
|
|
|
+ // 例如:刷新商品列表、更新推荐内容等
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 切换到指定页面
|
|
|
|
|
+ */
|
|
|
|
|
+ private void switchToPage(int pageIndex) {
|
|
|
|
|
+ if (mViewPager != null && pageIndex >= 0 && pageIndex < 3) {
|
|
|
|
|
+ mViewPager.setCurrentItem(pageIndex, true);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新导航栏选中状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private void updateNavigationSelection(int selectedIndex) {
|
|
|
|
|
+ mCurrentNavIndex = selectedIndex;
|
|
|
|
|
+
|
|
|
|
|
+ // 重置所有导航项状态
|
|
|
|
|
+ resetNavigationStates();
|
|
|
|
|
+
|
|
|
|
|
+ // 设置选中状态
|
|
|
|
|
+ switch (selectedIndex) {
|
|
|
|
|
+ case 0: // 首页
|
|
|
|
|
+ setNavigationSelected(mNavHome);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1: // 全部商品
|
|
|
|
|
+ setNavigationSelected(mNavAllGoods);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2: // 评价
|
|
|
|
|
+ setNavigationSelected(mNavReview);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 重置所有导航项状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private void resetNavigationStates() {
|
|
|
|
|
+ setNavigationUnselected(mNavHome);
|
|
|
|
|
+ setNavigationUnselected(mNavAllGoods);
|
|
|
|
|
+ setNavigationUnselected(mNavReview);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置导航项为选中状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private void setNavigationSelected(TextView textView) {
|
|
|
|
|
+ if (textView != null) {
|
|
|
|
|
+ textView.setTextSize(18); // 18sp
|
|
|
|
|
+ textView.setTypeface(null, Typeface.BOLD);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置导航项为未选中状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private void setNavigationUnselected(TextView textView) {
|
|
|
|
|
+ if (textView != null) {
|
|
|
|
|
+ textView.setTextSize(14); // 14sp
|
|
|
|
|
+ textView.setTypeface(null, Typeface.NORMAL);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * ViewPager适配器
|
|
|
|
|
+ */
|
|
|
|
|
+ private static class ShopContentAdapter extends FragmentStateAdapter {
|
|
|
|
|
+
|
|
|
|
|
+ public ShopContentAdapter(FragmentActivity fragmentActivity) {
|
|
|
|
|
+ super(fragmentActivity);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Fragment createFragment(int position) {
|
|
|
|
|
+ // 根据位置创建对应的Fragment
|
|
|
|
|
+ switch (position) {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ return new ShopHomeFragment(); // 首页Fragment
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ return new ShopAllGoodsFragment(); // 全部商品Fragment
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ return new ShopReviewFragment(); // 评价Fragment
|
|
|
|
|
+ default:
|
|
|
|
|
+ return new ShopHomeFragment();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public int getItemCount() {
|
|
|
|
|
+ return 3; // 三个页面
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 首页Fragment(示例)
|
|
|
|
|
+ */
|
|
|
|
|
+ public static class ShopHomeFragment extends Fragment {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public View onCreateView(android.view.LayoutInflater inflater, ViewGroup container, android.os.Bundle savedInstanceState) {
|
|
|
|
|
+ return inflater.inflate(R.layout.fragment_shop_home, container, false);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 全部商品Fragment(示例)
|
|
|
|
|
+ */
|
|
|
|
|
+ public static class ShopAllGoodsFragment extends Fragment {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public View onCreateView(android.view.LayoutInflater inflater, ViewGroup container, android.os.Bundle savedInstanceState) {
|
|
|
|
|
+ TextView textView = new TextView(getContext());
|
|
|
|
|
+ textView.setText("暂无商品");
|
|
|
|
|
+ textView.setGravity(Gravity.CENTER);
|
|
|
|
|
+ textView.setPadding(50, 50, 50, 50);
|
|
|
|
|
+ return textView;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 评价Fragment(示例)
|
|
|
|
|
+ */
|
|
|
|
|
+ public static class ShopReviewFragment extends Fragment {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public View onCreateView(android.view.LayoutInflater inflater, ViewGroup container, android.os.Bundle savedInstanceState) {
|
|
|
|
|
+ TextView textView = new TextView(getContext());
|
|
|
|
|
+ textView.setText("暂无评价");
|
|
|
|
|
+ textView.setGravity(Gravity.CENTER);
|
|
|
|
|
+ textView.setPadding(50, 50, 50, 50);
|
|
|
|
|
+ return textView;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -66,5 +525,30 @@ public class MainShopRuralViewHolder extends AbsMainViewHolder implements View.O
|
|
|
public void release() {
|
|
public void release() {
|
|
|
super.release();
|
|
super.release();
|
|
|
// 释放资源
|
|
// 释放资源
|
|
|
|
|
+ mLocationLayout = null;
|
|
|
|
|
+ mLocationText = null;
|
|
|
|
|
+ mRegionContainer = null;
|
|
|
|
|
+
|
|
|
|
|
+ // 释放导航栏和ViewPager资源
|
|
|
|
|
+ mNavHome = null;
|
|
|
|
|
+ mNavAllGoods = null;
|
|
|
|
|
+ mNavReview = null;
|
|
|
|
|
+
|
|
|
|
|
+ if (mViewPager != null) {
|
|
|
|
|
+ mViewPager.setAdapter(null);
|
|
|
|
|
+ mViewPager = null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ mContentAdapter = null;
|
|
|
|
|
+
|
|
|
|
|
+ if (mRegionTabItems != null) {
|
|
|
|
|
+ mRegionTabItems.clear();
|
|
|
|
|
+ mRegionTabItems = null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (mRegionList != null) {
|
|
|
|
|
+ mRegionList.clear();
|
|
|
|
|
+ mRegionList = null;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|