Commit 91327705 authored by maxiaoliang's avatar maxiaoliang

添加首页bannaer位置

parent 5bb4faff
package com.zxhl.shop.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.UMShareAPI;
import com.zxbw.modulemain.fragment.CashCheckFragment;
import com.zxbw.modulemain.fragment.HomeFragment;
import com.zxbw.modulemain.fragment.ShoppingMallFragment;
import com.zxbw.modulemain.fragment.UserCenterFragment;
import com.zxbw.modulemain.view.NavigationBottomView;
import com.zxhl.cms.utils.ClipboardManagerUtil;
import com.zxhl.shop.R;
import com.zxhl.cms.AppContext;
import com.zxhl.cms.common.Constant;
import com.zxhl.cms.common.base.BaseActivity;
import com.zxhl.cms.net.ApiClient;
import com.zxhl.cms.net.RxSchedulers;
import com.zxhl.cms.net.SettingPreference;
import com.zxhl.cms.net.callback.BaseObserver;
import com.zxhl.cms.net.model.uc.UserInfo;
import com.zxhl.cms.utils.EventUtils;
import com.zxhl.cms.utils.JumpUtils;
import com.zxhl.cms.utils.RxBus;
import com.zxhl.cms.utils.UserDataUtils;
import com.zxhl.cms.utils.Utils;
import com.zxhl.cms.widget.LoadingDialog;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
package com.zxhl.shop.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.view.View
import android.widget.ImageView
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import com.bumptech.glide.Glide
import com.umeng.analytics.MobclickAgent
import com.umeng.socialize.UMShareAPI
import com.zxbw.modulemain.fragment.CashCheckFragment
import com.zxbw.modulemain.fragment.HomeFragment
import com.zxbw.modulemain.fragment.ShoppingMallFragment
import com.zxbw.modulemain.fragment.UserCenterFragment
import com.zxbw.modulemain.view.NavigationBottomView
import com.zxbw.modulemain.view.NavigationBottomView.NavifationCallback
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.ApiClient.homeApi
import com.zxhl.cms.net.ApiClient.userInfoAPi
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.net.model.video.HomeAdEntity
import com.zxhl.cms.utils.*
import com.zxhl.cms.utils.ClipboardManagerUtil.getTbLink
import com.zxhl.cms.utils.EventUtils.onEvent
import com.zxhl.cms.utils.UserDataUtils.updateUserInfo
import com.zxhl.cms.widget.LoadingDialog
import com.zxhl.shop.R
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import java.util.*
/**
* Copyright @ 2018 Bitgoose All rights reserved.
......@@ -51,249 +46,233 @@ import io.reactivex.functions.Consumer;
* @author: fuxin
* @date: 2019/3/15 下午2:19
*/
public class MainActivity extends BaseActivity implements NavigationBottomView.NavifationCallback/*, IDialogCloseCallback, MemberContract.View*/ {
private List<Fragment> fragments = new ArrayList<>();
private NavigationBottomView navigationView;
private LoadingDialog mLoading;
private Observable<String> mRestartLoginObservable;
private Observable<Integer> mSwitchMainObservable;
private ImageView adview;
@Override
public int layoutID() {
return R.layout.activity_main;
class MainActivity : BaseActivity(),
NavifationCallback /*, IDialogCloseCallback, MemberContract.View*/ {
private val fragments: MutableList<Fragment> = ArrayList()
private var navigationView: NavigationBottomView? = null
private var mLoading: LoadingDialog? = null
private var mRestartLoginObservable: Observable<String>? = null
private var mSwitchMainObservable: Observable<Int>? = null
private var adview: ImageView? = null
override fun layoutID(): Int {
return R.layout.activity_main
}
@Override
public void before() {
super.before();
setStatusBarBackground(AppContext.get().getResources().getColor(R.color.transparent));
override fun before() {
super.before()
setStatusBarBackground(AppContext.get().resources.getColor(R.color.transparent))
}
@SuppressLint("CheckResult")
@Override
public void init() {
override fun init() {
mLoading = LoadingDialog.getLoadingDialog(
this,
getString(com.zxhl.cms.R.string.wait_ing),
false,
false
);
navigationView = findViewById(R.id.id_activity_main_fragment_navigation);
adview=findViewById(R.id.id_img_fly_ad);
initListener();
mRestartLoginObservable = RxBus.get().register(Constant.REFRESH_LOGIN_STATS, String.class);
mRestartLoginObservable.observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
JumpUtils.loginJump();
this,
getString(com.zxhl.cms.R.string.wait_ing),
false,
false
)
getAdinfo()
navigationView = findViewById(R.id.id_activity_main_fragment_navigation)
adview = findViewById(R.id.id_img_fly_ad)
adview?.setOnClickListener {
if(!TextUtils.isEmpty(clickUrl)){
onEvent("ad_click",""+clickid)
JumpUtils.webJump(adName, clickUrl)
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
});
initFragment();
mSwitchMainObservable = RxBus.get().register(Constant.SWITCH_PAGE, Integer.class);
mSwitchMainObservable.observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer s) throws Exception {
switchFragment(s);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
});
boolean firstLoginApp = SettingPreference.getFirstLoginApp();
}
initListener()
mRestartLoginObservable =
RxBus.get().register(Constant.REFRESH_LOGIN_STATS, String::class.java)
mRestartLoginObservable!!.observeOn(AndroidSchedulers.mainThread())
.subscribe({ JumpUtils.loginJump() }) { }
initFragment()
mSwitchMainObservable = RxBus.get().register(Constant.SWITCH_PAGE, Int::class.java)
mSwitchMainObservable!!.observeOn(AndroidSchedulers.mainThread())
.subscribe({ s -> switchFragment(s) }) { }
val firstLoginApp = SettingPreference.getFirstLoginApp()
if (firstLoginApp) {
UserInfo userInfoData = SettingPreference.getUserInfoData();
val userInfoData = SettingPreference.getUserInfoData()
if (userInfoData != null && userInfoData.member != null) {
Constant.Switch.isOpenVip = userInfoData.member;
Constant.Switch.isOpenVip = userInfoData.member
if (!userInfoData.member) {
SettingPreference.setFirstLoginApp();
JumpUtils.OpenMember();
SettingPreference.setFirstLoginApp()
JumpUtils.OpenMember()
}
}
}
}
private void initListener() {
navigationView.setNavifationCallback(this);
private fun initListener() {
navigationView!!.setNavifationCallback(this)
}
private void initFragment() {
fragments.add(new HomeFragment());
fragments.add(new ShoppingMallFragment());
fragments.add(new CashCheckFragment());
fragments.add(new UserCenterFragment());
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
for (Fragment fragment : fragments) {
transaction.add(R.id.id_activity_main_fragment_layout, fragment);
private fun initFragment() {
fragments.add(HomeFragment())
fragments.add(ShoppingMallFragment())
fragments.add(CashCheckFragment())
fragments.add(UserCenterFragment())
val transaction = supportFragmentManager.beginTransaction()
for (fragment in fragments) {
transaction.add(R.id.id_activity_main_fragment_layout, fragment)
}
hideFragment(transaction);
transaction.show(fragments.get(0)).commit();
EventUtils.INSTANCE.onEvent("tab_imp", "home");
hideFragment(transaction)
transaction.show(fragments[0]).commit()
onEvent("tab_imp", "home")
}
private void switchFragment(int index) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
hideFragment(transaction);
transaction.show(fragments.get(index)).commitAllowingStateLoss();
getSupportFragmentManager().executePendingTransactions();
private fun switchFragment(index: Int) {
getAdinfo()
val transaction = supportFragmentManager.beginTransaction()
hideFragment(transaction)
transaction.show(fragments[index]).commitAllowingStateLoss()
supportFragmentManager.executePendingTransactions()
}
private void switchFragment(Fragment fragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
hideFragment(transaction);
transaction.show(fragment).commit();
private fun switchFragment(fragment: Fragment) {
val transaction = supportFragmentManager.beginTransaction()
hideFragment(transaction)
transaction.show(fragment).commit()
}
private void hideFragment(FragmentTransaction transaction) {
for (Fragment fragment : fragments) {
transaction.hide(fragment);
private fun hideFragment(transaction: FragmentTransaction) {
for (fragment in fragments) {
transaction.hide(fragment)
}
}
@Override
public void onClick(View v) {
}
@Override
public void onNavigationClick(int vId) {
override fun onClick(v: View) {}
override fun onNavigationClick(vId: Int) {
if (vId == com.zxbw.modulemain.R.id.id_view_navigation_bottom_box) {
switchFragment(0);
EventUtils.INSTANCE.onEvent("tab_imp", "home");
switchFragment(0)
onEvent("tab_imp", "home")
} else if (vId == com.zxbw.modulemain.R.id.id_view_navigation_bottom_shop) {
switchFragment(1);
EventUtils.INSTANCE.onEvent("tab_imp", "shop");
switchFragment(1)
onEvent("tab_imp", "shop")
} else if (vId == com.zxbw.modulemain.R.id.id_view_navigation_bottom_cash) {
switchFragment(2);
EventUtils.INSTANCE.onEvent("tab_imp", "cash_check");
switchFragment(2)
onEvent("tab_imp", "cash_check")
}
if (vId == com.zxbw.modulemain.R.id.id_view_navigation_bottom_user) {
switchFragment(3);
EventUtils.INSTANCE.onEvent("tab_imp", "user");
switchFragment(3)
onEvent("tab_imp", "user")
}
}
private boolean mPrepareExit = false;
@Override
public void onBackPressed() {
exitBy2Click();
private var mPrepareExit = false
override fun onBackPressed() {
exitBy2Click()
}
private void exitBy2Click() {
private fun exitBy2Click() {
if (!mPrepareExit) {
mPrepareExit = true;// 准备退出
Utils.showToast(this, getResources().getString(R.string.nav_back_again_finish));
navigationView.postDelayed(new Runnable() {
@Override
public void run() {
mPrepareExit = false;// 取消退出
}
}, 1500);
mPrepareExit = true // 准备退出
Utils.showToast(this, resources.getString(R.string.nav_back_again_finish))
navigationView!!.postDelayed({
mPrepareExit = false // 取消退出
}, 1500)
} else {
EventUtils.INSTANCE.onEvent("double_exit", "双击退出");
exitActivity();
onEvent("double_exit", "双击退出")
exitActivity()
// closeApp();
}
}
private void exitActivity() {
Utils.onExit(this);
private fun exitActivity() {
Utils.onExit(this)
}
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
UserInfo userInfoData = SettingPreference.getUserInfoData();
override fun onResume() {
super.onResume()
MobclickAgent.onResume(this)
val userInfoData = SettingPreference.getUserInfoData()
if (userInfoData != null && userInfoData.member != null) {
Constant.Switch.isOpenVip = userInfoData.member;
Constant.Switch.isOpenVip = userInfoData.member
}
ClipboardManagerUtil.INSTANCE.getTbLink(this);
getTbLink(this)
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
override fun onPause() {
super.onPause()
MobclickAgent.onPause(this)
}
private void deviceLogin() {
ApiClient.INSTANCE.getUserInfoAPi().deviceLogin().compose(RxSchedulers.observableIO2Main()).subscribe(new BaseObserver<UserInfo>() {
@Override
public void onSuccess(UserInfo result) {
if (result != null) {
SettingPreference.saveToken(result.token);
UserDataUtils.INSTANCE.updateUserInfo(null);
private fun deviceLogin() {
userInfoAPi.deviceLogin().compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<UserInfo?>() {
override fun onSuccess(result: UserInfo?) {
if (result != null) {
SettingPreference.saveToken(result.token)
updateUserInfo(null)
}
}
}
@Override
public void onFailure(Throwable e, String code, String errorMsg) {
override fun onFailure(e: Throwable, code: String, errorMsg: String) {}
}
});
})
}
private void closeApp() {
ApiClient.INSTANCE.getHomeApi().closeApp().compose(RxSchedulers.observableIO2Main()).subscribe(new BaseObserver<Object>() {
@Override
public void onSuccess(Object result) {
exitActivity();
}
@Override
public void onFailure(Throwable e, String code, String errorMsg) {
exitActivity();
}
});
private fun closeApp() {
// homeApi.closeApp().compose(RxSchedulers.observableIO2Main())
// .subscribe(object : BaseObserver<Any?>() {
// override fun onSuccess(result: Any) {
// exitActivity()
// }
//
// override fun onFailure(e: Throwable, code: String, errorMsg: String) {
// exitActivity()
// }
// })
}
@Override
protected void onDestroy() {
super.onDestroy();
RxBus.get().unregister(Constant.REFRESH_LOGIN_STATS, mRestartLoginObservable);
RxBus.get().unregister(Constant.SWITCH_PAGE, mSwitchMainObservable);
override fun onDestroy() {
super.onDestroy()
RxBus.get().unregister(Constant.REFRESH_LOGIN_STATS, mRestartLoginObservable!!)
RxBus.get().unregister(Constant.SWITCH_PAGE, mSwitchMainObservable!!)
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
try {
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
} catch (Exception e) {
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data)
} catch (e: Exception) {
}
}
@SuppressLint("MissingSuperCall")
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
override fun onSaveInstanceState(outState: Bundle) {
// super.onSaveInstanceState(outState);
}
var imgUrl: String? = ""
var clickid: String? = ""
var clickUrl: String? = ""
var adName:String?=""
fun getAdinfo() {
ApiClient.homeApi.getHomeAdInfo().compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<HomeAdEntity>>() {
override fun onSuccess(result: List<HomeAdEntity>?) {
if (!result.isNullOrEmpty()) {
for (item in result) {
if (item.slotName.equals("flow")) {
imgUrl = item.imgUrl
clickid = item.id
clickUrl = item.url
adName=item.title
Glide.with(AppContext.get()).asGif().load(imgUrl).into(adview!!)
// Glide.with(this).load(imgUrl)
// .apply(RequestOptions.bitmapTransform(CircleCrop()))
// .into(id_img_banner!!)
}
}
}
}
private void getAdInfo() {
ApiClient.INSTANCE.getHomeApi().closeApp().compose(RxSchedulers.observableIO2Main()).subscribe(new BaseObserver<Object>() {
@Override
public void onSuccess(Object result) {
exitActivity();
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
@Override
public void onFailure(Throwable e, String code, String errorMsg) {
exitActivity();
}
});
}
})
}
}
}
\ No newline at end of file
......@@ -32,8 +32,7 @@
android:layout_above="@+id/id_activity_main_fragment_navigation"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="100dp"
android:src="@drawable/icon_head_defalt" />
android:layout_marginBottom="100dp" />
<View
......
PACKAGE_NAME=com.zxhl.shop
VERSION_CODE=27
VERSION_NAME=1.2.6
\ No newline at end of file
VERSION_CODE=28
VERSION_NAME=1.2.7
\ No newline at end of file
......@@ -284,6 +284,7 @@ public class NetConfig {
public static final String XX_GOODS_FETCHALL_CARD = "app/v1/game/xiaoxiang/fetchAllCard";//话费券列表
public static final String XX_GOODS_VIDEO_AD_INFO = "app/v1/game/xiaoxiang/videoAdInfo";//获取激励视频奖励信息
public static final String XX_GOODS_VIDEO_REWARD = "app/v1/game/xiaoxiang/videoAward";//激励视频播放以后调用保存话费券
public static final String XX_GOODS_HOME_AD_INFO = "app/v1/game/xiaoxiang/ads";//首页广告信息
}
public static class FlashSale {
......
......@@ -14,6 +14,7 @@ import com.zxhl.cms.net.model.qy.TbGoodsEntity
import com.zxhl.cms.net.model.qy.SkillEntity
import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.net.model.uc.VersionEntity
import com.zxhl.cms.net.model.video.HomeAdEntity
import com.zxhl.cms.net.model.video.VideoInfoEntity
import io.reactivex.Observable
import okhttp3.ResponseBody
......@@ -416,4 +417,7 @@ interface IHomeApi {
@POST(NetConfig.QY.XX_GOODS_VIDEO_REWARD)
fun getVideoReward(): Observable<Response<VideoInfoEntity>>
@GET(NetConfig.QY.XX_GOODS_HOME_AD_INFO)
fun getHomeAdInfo(): Observable<Response<List<HomeAdEntity>>>
}
\ No newline at end of file
package com.zxhl.cms.net.model.video
class HomeAdEntity {
var id: String? = ""
var title: String? = ""
var imgUrl: String? = ""
var url: String? = ""
var slotName: String? = ""
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.zxbw.modulemain.contract
import com.zxhl.cms.net.model.box.TabEntity
import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.qy.HomeBannerEntity
import com.zxhl.cms.net.model.video.HomeAdEntity
/**
* 主页
......@@ -13,11 +14,13 @@ class HomeContract {
fun setBannerList(result: List<HomeBannerEntity>?)
fun setTabList(list: List<TabEntity>?)
fun setCouponsList(result: List<CouponsEntity>?)
fun setAdBanner(result: List<HomeAdEntity>?)
}
interface Presenter {
fun getBannerList()
fun getTabList()
fun getFetchCard()
fun getAdInfo()
}
}
\ No newline at end of file
......@@ -5,11 +5,15 @@ import android.text.TextUtils
import android.util.Log
import android.view.View
import androidx.viewpager.widget.ViewPager
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.CircleCrop
import com.bumptech.glide.request.RequestOptions
import com.zxbw.modulemain.R
import com.zxbw.modulemain.adapter.HomeBannerAdapter
import com.zxbw.modulemain.contract.HomeContract
import com.zxbw.modulemain.presenter.HomePresenter
import com.zxbw.modulemain.view.DialogUtils
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.FragmentAdapter
import com.zxhl.cms.common.NetConfig
......@@ -19,6 +23,8 @@ import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.model.box.TabEntity
import com.zxhl.cms.net.model.qy.CouponsEntity
import com.zxhl.cms.net.model.qy.HomeBannerEntity
import com.zxhl.cms.net.model.video.HomeAdEntity
import com.zxhl.cms.utils.EventUtils
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.UpdateCallback
import com.zxhl.cms.utils.Utils
......@@ -40,7 +46,7 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
override fun lazyLoad() {
super.lazyLoad()
if (isInitial && isVisible) {
mPresenter?.getAdInfo()
}
}
......@@ -49,10 +55,16 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
updateVersionManager?.checkUpdate(true)
var statusBarHeight = ScreenUtils.getStatusBarHeight()
if (statusBarHeight <= 0) {
statusBarHeight = 40;
statusBarHeight = 40
}
id_title_sys_bar_view.layoutParams.height = statusBarHeight
id_img_banner?.setOnClickListener {
if(!TextUtils.isEmpty(clickUrl)){
EventUtils.onEvent("ad_click",""+clickid)
JumpUtils.webJump(adName, clickUrl)
}
}
mPresenter = HomePresenter(this)
id_rl_search_view.setOnClickListener {
......@@ -148,8 +160,8 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
}
override fun setCouponsList(result: List<CouponsEntity>?) {
if(!result.isNullOrEmpty()){
if(TextUtils.equals(SettingPreference.getifShowCoups(),"0")){
if (!result.isNullOrEmpty()) {
if (TextUtils.equals(SettingPreference.getifShowCoups(), "0")) {
DialogUtils.showifshowCoup(mActivity, result, View.OnClickListener {
JumpUtils.RechargeJump()
})
......@@ -159,6 +171,30 @@ class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
}
var imgUrl: String? = ""
var clickid: String? = ""
var clickUrl: String? = ""
var adName:String?=""
override fun setAdBanner(result: List<HomeAdEntity>?) {
if (!result.isNullOrEmpty()) {
for (item in result) {
if (item.slotName.equals("banner")) {
imgUrl = item.imgUrl
clickid = item.id
clickUrl = item.url
adName=item.title
Glide.with(AppContext.get()).asGif().load(imgUrl).into(id_img_banner!!)
// Glide.with(this).load(imgUrl)
// .apply(RequestOptions.bitmapTransform(CircleCrop()))
// .into(id_img_banner!!)
}
}
}
}
override fun CheckUpate(boolean: Boolean) {
Log.e("MXL", "更新:" + boolean)
if (Constant.Switch.isOpenVip) {
......
......@@ -18,6 +18,7 @@ import com.zxhl.cms.net.model.qy.HomeBannerEntity
import com.zxhl.cms.net.model.qy.JgqQyEntity
import com.zxhl.cms.net.model.qy.TbGoodsEntity
import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.net.model.video.HomeAdEntity
import com.zxhl.cms.utils.EventUtils
import com.zxhl.cms.utils.UserDataUtils
import com.zxhl.cms.utils.Utils
......@@ -44,9 +45,9 @@ class HomePresenter : HomeContract.Presenter {
var entity = HomeBannerEntity()
entity.bannerType = "hua_fei"
toMutableList?.add(0, entity)
toMutableList?.removeAt(toMutableList.size-1)
toMutableList?.removeAt(toMutableList.size - 1)
mView.setBannerList(toMutableList?.toList())
}else{
} else {
mView.setBannerList(result)
}
}
......@@ -90,4 +91,17 @@ class HomePresenter : HomeContract.Presenter {
}
})
}
override fun getAdInfo() {
ApiClient.homeApi.getHomeAdInfo().compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<HomeAdEntity>>() {
override fun onSuccess(result: List<HomeAdEntity>?) {
mView.setAdBanner(result)
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
}
\ No newline at end of file
......@@ -30,6 +30,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp">
<com.zxbw.modulemain.view.WrapContentHeightViewPager
android:id="@+id/id_home_top_banner"
android:layout_width="match_parent"
......@@ -45,6 +46,16 @@
tl:vpi_slider_checked_color="@color/white"
tl:vpi_slider_normal_color="#80ffffff"
tl:vpi_slider_radius="3dp" />
<ImageView
android:id="@+id/id_img_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_below="@+id/id_home_top_banner"
android:adjustViewBounds="true" />
</RelativeLayout>
<androidx.appcompat.widget.Toolbar
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment