UI 适配

This commit is contained in:
zhangyuanzhen
2020-03-13 17:11:49 +08:00
parent acc93a10e0
commit f50325f78c
32 changed files with 200 additions and 50 deletions

View File

@@ -3,6 +3,8 @@ package com.mogo.module.apps;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
@@ -12,6 +14,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.module.apps.adapter.AppIndicatorAdapter;
import com.mogo.module.apps.adapter.base.RecycleViewHolder;
import com.mogo.module.apps.model.NavigatorApp;
import com.mogo.module.apps.model.NavigatorApps;
import com.mogo.module.apps.utils.CardScaleTransformer;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.MogoServicePaths;
@@ -24,6 +29,7 @@ import com.mogo.utils.logger.Logger;
import com.yarolegovich.discretescrollview.DiscreteScrollView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -33,14 +39,15 @@ import java.util.Map;
* 描述
*/
public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavigatorPresenter>
implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener<RecyclerView.ViewHolder>,
DiscreteScrollView.ScrollStateChangeListener<RecyclerView.ViewHolder>,
implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener<RecycleViewHolder>,
DiscreteScrollView.ScrollStateChangeListener<RecycleViewHolder>,
IMogoCardChangedListener {
private static final String TAG = "AppNavigatorFragment";
private View mApps;
private IMogoFragmentManager mMogoFragmentManager;
List<NavigatorApp> apps;
/**
* 搜索莫模块
@@ -67,6 +74,9 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
mApps = findViewById(R.id.module_apps_id_apps);
scroller = findViewById(R.id.module_apps_id_scroller);
scroller.setRatio(330/523F);
//scroller.setRatio(176/279F);
scroller.setSlideOnFling(true);
scroller.addOnItemChangedListener(this);
scroller.addScrollStateChangeListener(this);
@@ -74,23 +84,10 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
scroller.setItemTransformer(new CardScaleTransformer.Builder()
.setMinScale(0.84f)
.build());
//
//
//LinearLayoutManager linearLayoutManager =
// new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
//
//scroller.setLayoutManager(linearLayoutManager);
ArrayList<Integer> integers = new ArrayList<>(10);
apps = NavigatorApps.getApps();
integers.add(R.drawable.module_apps_ic_online_car);
integers.add(R.drawable.module_apps_ic_interest);
integers.add(R.drawable.module_apps_ic_news);
integers.add(R.drawable.module_apps_ic_media_center);
integers.add(R.drawable.module_apps_ic_chat);
integers.add(R.drawable.module_apps_ic_tanlu);
AppIndicatorAdapter appIndicatorAdapter = new AppIndicatorAdapter(getContext(), integers);
AppIndicatorAdapter appIndicatorAdapter = new AppIndicatorAdapter(getContext(), apps);
scroller.setAdapter(appIndicatorAdapter);
scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1);
//mNavigation.setOnClickListener( view -> {
@@ -178,27 +175,45 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
}
@Override
public void onCurrentItemChanged(@Nullable RecyclerView.ViewHolder viewHolder, int i) {
public void onCurrentItemChanged(@Nullable RecycleViewHolder viewHolder, int i) {
Logger.d(TAG, "onCurrentItemChanged--position--" + i % CARD_SIZE);
int currentPosition = i % CARD_SIZE - 2;
if (currentPosition < 0) {
currentPosition += CARD_SIZE;
}
this.currentPosition=currentPosition;
AppServiceHandler.getMogoCardManager().invoke(currentPosition, "");
}
AppServiceHandler.getMogoCardManager().switch2(apps.get(i % CARD_SIZE).mModuleType);
@Override public void onScrollStart(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
//holder.showText();
//ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
//view.setImageResource(apps.get(currentPosition).getmIconId());
//
//TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
//tvTitle.setTextColor(getResources().getColor(R.color.white));
}
@Override public void onScrollEnd(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
@Override public void onScrollStart(@NonNull RecycleViewHolder viewHolder, int i) {
int currentPosition = i % CARD_SIZE - 2;
//
//ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon);
//
//
//view.setImageResource(apps.get(currentPosition).mUncheckedIconId);
//TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name);
//tvTitle.setTextColor(getResources().getColor(R.color.white_80));
}
@Override public void onScrollEnd(@NonNull RecycleViewHolder viewHolder, int i) {
}
@Override
public void onScroll(float v, int i, int i1, @Nullable RecyclerView.ViewHolder viewHolder,
@Nullable RecyclerView.ViewHolder t1) {
public void onScroll(float v, int i, int i1, @Nullable RecycleViewHolder viewHolder,
@Nullable RecycleViewHolder t1) {
}

View File

@@ -6,17 +6,18 @@ import android.widget.ImageView;
import com.mogo.module.apps.R;
import com.mogo.module.apps.adapter.base.RecycleBaseAdapter;
import com.mogo.module.apps.adapter.base.RecycleViewHolder;
import com.mogo.module.apps.model.NavigatorApp;
import java.util.List;
/**
* @author zyz
* 2020-03-09.
*/
public class AppIndicatorAdapter extends RecycleBaseAdapter<Integer> {
public class AppIndicatorAdapter extends RecycleBaseAdapter<NavigatorApp> {
/**
*
*/
public AppIndicatorAdapter(Context context, List<Integer> list
public AppIndicatorAdapter(Context context, List<NavigatorApp> list
) {
super(context, list, R.layout.module_apps_item_app_indicator);
}
@@ -25,10 +26,9 @@ public class AppIndicatorAdapter extends RecycleBaseAdapter<Integer> {
return Integer.MAX_VALUE;
}
@Override public void onBindViewHolder(RecycleViewHolder holder, Integer integer) {
@Override public void onBindViewHolder(RecycleViewHolder holder, NavigatorApp integer) {
ImageView ivIndicator = holder.getView(R.id.module_apps_id_app_icon);
ivIndicator.setImageResource(integer);
holder.setText(R.id.module_apps_id_app_name,names[holder.getLayoutPosition()%6] );
ivIndicator.setImageResource(integer.getmIconId());
holder.setText(R.id.module_apps_id_app_name,integer.getmName() );
}
private String[] names=new String[]{"在线车辆","新鲜事","首页","媒体中心","车聊聊","探路"};
}

View File

@@ -0,0 +1,58 @@
package com.mogo.module.apps.model;
import androidx.annotation.DrawableRes;
/**
* @author congtaowang
* @since 2020-03-13
* <p>
* app
*/
public class NavigatorApp {
@DrawableRes
public int mIconId;
@DrawableRes
public int mUncheckedIconId;
public String mName;
public String mModuleType;
public NavigatorApp( int mIconId,int mUncheckedIconId, String mName, String mModuleType ) {
this.mIconId = mIconId;
this.mUncheckedIconId = mUncheckedIconId;
this.mName = mName;
this.mModuleType = mModuleType;
}
public int getmIconId() {
return mIconId;
}
public void setmIconId(int mIconId) {
this.mIconId = mIconId;
}
public int getmUncheckedIconId() {
return mUncheckedIconId;
}
public void setmUncheckedIconId(int mUncheckedIconId) {
this.mUncheckedIconId = mUncheckedIconId;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getmModuleType() {
return mModuleType;
}
public void setmModuleType(String mModuleType) {
this.mModuleType = mModuleType;
}
}

View File

@@ -0,0 +1,34 @@
package com.mogo.module.apps.model;
import com.mogo.module.apps.R;
import com.mogo.module.common.ModuleNames;
import java.util.ArrayList;
import java.util.List;
/**
* @author congtaowang
* @since 2020-03-13
* <p>
* app
*/
public class NavigatorApps {
//integers.add(R.drawable.module_apps_ic_online_car);
//integers.add(R.drawable.module_apps_ic_interest);
//integers.add(R.drawable.module_apps_ic_news);
//integers.add(R.drawable.module_apps_ic_media_center);
//integers.add(R.drawable.module_apps_ic_chat_icon);
//integers.add(R.drawable.module_apps_ic_tanlu);
public static List< NavigatorApp > getApps() {
List< NavigatorApp > apps = new ArrayList<>();
apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) );
apps.add( new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked,"新鲜事", ModuleNames.CARD_TYPE_NOVELTY ) );
apps.add( new NavigatorApp( R.drawable.module_apps_ic_news,R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ) );
apps.add( new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ) );
apps.add( new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked,"车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ) );
apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) );
return apps;
}
}