卡片效果
This commit is contained in:
@@ -3,29 +3,25 @@ package com.mogo.module.apps;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import android.widget.HorizontalScrollView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearSnapHelper;
|
||||
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.utils.CardScaleTransformer;
|
||||
import com.mogo.module.apps.utils.LaunchUtils;
|
||||
import com.mogo.module.common.MogoModulePaths;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.cardmanager.IMogoCardChangedListener;
|
||||
import com.mogo.service.fragmentmanager.FragmentDescriptor;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.utils.TipToast;
|
||||
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.yarolegovich.discretescrollview.DiscreteScrollView;
|
||||
import com.yarolegovich.discretescrollview.transform.ScaleTransformer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -38,8 +34,10 @@ import java.util.Map;
|
||||
*/
|
||||
public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavigatorPresenter>
|
||||
implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener<RecyclerView.ViewHolder>,
|
||||
DiscreteScrollView.ScrollStateChangeListener<RecyclerView.ViewHolder> {
|
||||
DiscreteScrollView.ScrollStateChangeListener<RecyclerView.ViewHolder>,
|
||||
IMogoCardChangedListener {
|
||||
|
||||
private static final String TAG = "AppNavigatorFragment";
|
||||
private View mApps;
|
||||
|
||||
private IMogoFragmentManager mMogoFragmentManager;
|
||||
@@ -52,6 +50,8 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
|
||||
private IMogoAnalytics mMogoAnalytics;
|
||||
private DiscreteScrollView scroller;
|
||||
|
||||
private static final int CARD_SIZE = 6;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.module_apps_fragment_apps_navigator;
|
||||
@@ -83,15 +83,16 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
|
||||
|
||||
ArrayList<Integer> integers = new ArrayList<>(10);
|
||||
|
||||
integers.add(R.drawable.module_apps_ic_interest);
|
||||
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_tanlu);
|
||||
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);
|
||||
scroller.setAdapter(appIndicatorAdapter);
|
||||
scroller.scrollToPosition(Integer.MAX_VALUE / 2-1);
|
||||
scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1);
|
||||
//mNavigation.setOnClickListener( view -> {
|
||||
// openSearchPanel();
|
||||
// trackNavigatorClickEvent( 1 );
|
||||
@@ -116,6 +117,9 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
|
||||
openAppsPanel();
|
||||
trackNavigatorClickEvent(4);
|
||||
});
|
||||
AppServiceHandler.init(getContext());
|
||||
|
||||
AppServiceHandler.getMogoCardManager().registerCardChangedListener(TAG, this);
|
||||
}
|
||||
|
||||
private void scrollToCenter(int index) {
|
||||
@@ -175,7 +179,7 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
|
||||
|
||||
@Override
|
||||
public void onCurrentItemChanged(@Nullable RecyclerView.ViewHolder viewHolder, int i) {
|
||||
|
||||
//AppServiceHandler.getMogoCardManager().invoke(i%CARD_SIZE,"");
|
||||
}
|
||||
|
||||
@Override public void onScrollStart(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
|
||||
@@ -191,4 +195,16 @@ public class AppNavigatorFragment extends MvpFragment<AppNavigatorView, AppNavig
|
||||
@Nullable RecyclerView.ViewHolder t1) {
|
||||
|
||||
}
|
||||
|
||||
@Override public void onSwitched(int position, String moduleName) {
|
||||
int index = (position - scroller.getCurrentItem() % CARD_SIZE + 2) % CARD_SIZE;
|
||||
int i = scroller.getCurrentItem() + index;
|
||||
//DiscreteScrollLayoutManager layoutManager =
|
||||
// (DiscreteScrollLayoutManager) scroller.getLayoutManager();
|
||||
//
|
||||
//layoutManager.smoothScrollToPosition();
|
||||
|
||||
Logger.d(TAG, "position" + index + "scroll" + i);
|
||||
scroller.smoothScrollToPosition(i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.mogo.module.apps;
|
||||
|
||||
import android.content.Context;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.map.marker.IMogoMarkerManager;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
import com.mogo.module.common.entity.MarkerShowEntity;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.cardmanager.IMogoCardManager;
|
||||
import com.mogo.service.connection.IMogoSocketManager;
|
||||
import com.mogo.service.imageloader.IMogoImageloader;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
|
||||
/**
|
||||
* author : zyz
|
||||
* e-mail : 1358506549@qq.com
|
||||
* date : 2020-01-0718:54
|
||||
* desc : 持有服务接口实例
|
||||
* version: 1.0
|
||||
*/
|
||||
public class AppServiceHandler {
|
||||
private static final String TAG = "AppServiceHandler";
|
||||
|
||||
private static IMogoServiceApis mApis;
|
||||
private static IMogoCardManager mMogoCardManager;
|
||||
private static IMogoAnalytics mMogoAnalytics;
|
||||
|
||||
|
||||
public static void init( final Context context ) {
|
||||
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
|
||||
mMogoCardManager = mApis.getCardManagerApi();
|
||||
mMogoAnalytics = mApis.getAnalyticsApi();
|
||||
|
||||
}
|
||||
public static IMogoCardManager getMogoCardManager() {
|
||||
return mMogoCardManager;
|
||||
}
|
||||
public static IMogoAnalytics getMogoAnalytics() {
|
||||
return mMogoAnalytics;
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ public class AppIndicatorAdapter extends RecycleBaseAdapter<Integer> {
|
||||
@Override public void onBindViewHolder(RecycleViewHolder holder, Integer 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()%5] );
|
||||
holder.setText(R.id.module_apps_id_app_name,names[holder.getLayoutPosition()%6] );
|
||||
}
|
||||
private String[] names=new String[]{"新鲜事","在线车辆","首页","探路","车聊聊"};
|
||||
private String[] names=new String[]{"在线车辆","新鲜事","首页","媒体中心","车聊聊","探路"};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user