修复:

侧边栏问题
This commit is contained in:
18401019693 2022-08-26 09:52:04 +08:00
parent da19811ad4
commit b3500b94c0
9 changed files with 115 additions and 60 deletions

View File

@ -22,6 +22,17 @@ public class AnchorRecommendModel extends BaseModel {
private int upShow = 0; private int upShow = 0;
@SerializedName("list") @SerializedName("list")
private List<AnchorRecommendItemModel> list = new ArrayList<>(); private List<AnchorRecommendItemModel> list = new ArrayList<>();
@SerializedName("slide")
private List<SlideInfoModel> slide = new ArrayList<>();
public List<SlideInfoModel> getSlide() {
return slide;
}
public AnchorRecommendModel setSlide(List<SlideInfoModel> slide) {
this.slide = slide;
return this;
}
public int getListShow() { public int getListShow() {
return listShow; return listShow;

View File

@ -21,9 +21,10 @@
<ImageView <ImageView
android:id="@+id/live_type" android:id="@+id/live_type"
android:layout_width="wrap_content" android:layout_width="46dp"
android:layout_height="wrap_content" android:layout_height="18dp"
android:layout_margin="4dp" android:layout_margin="4dp"
android:scaleType="centerCrop"
android:gravity="center" /> android:gravity="center" />
<TextView <TextView

View File

@ -65,7 +65,6 @@ import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import com.yunbao.live.socket.SocketSendBean; import com.yunbao.live.socket.SocketSendBean;
import com.yunbao.live.utils.LiveImDeletUtil; import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.LiveRoomPlayViewHolder; import com.yunbao.live.views.LiveRoomPlayViewHolder;
import com.yunbao.live.views.LoadingView;
import com.yunbao.live.views.PortraitLiveManager; import com.yunbao.live.views.PortraitLiveManager;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
@ -121,7 +120,6 @@ public class LiveAudienceActivity extends LiveActivity {
private int mLastPosition = -1; private int mLastPosition = -1;
private ViewGroup mViewGroup; private ViewGroup mViewGroup;
private LoadingView loadingView;
private int liveBg = 0; private int liveBg = 0;
@ -168,8 +166,6 @@ public class LiveAudienceActivity extends LiveActivity {
private void initView() { private void initView() {
// 竖直滑动 ViewPager // 竖直滑动 ViewPager
verticalViewPager = findViewById(R.id.view_pager); verticalViewPager = findViewById(R.id.view_pager);
loadingView = findViewById(R.id.loading);
loadingView.show();
} }
public void setBackIndex(int backIndex) { public void setBackIndex(int backIndex) {
@ -193,7 +189,6 @@ public class LiveAudienceActivity extends LiveActivity {
itemModelList.add(0, model); itemModelList.add(0, model);
mPagerAdapter = new VerticalPagerAdapter(itemModelList, mContext); mPagerAdapter = new VerticalPagerAdapter(itemModelList, mContext);
verticalViewPager.setAdapter(mPagerAdapter); verticalViewPager.setAdapter(mPagerAdapter);
loadingView.hide();
verticalViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { verticalViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override @Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@ -822,6 +817,14 @@ public class LiveAudienceActivity extends LiveActivity {
mPagerAdapter.notifyDataSetChanged(); mPagerAdapter.notifyDataSetChanged();
verticalViewPager.setCurrentItem(mCurrentPage + 1); verticalViewPager.setCurrentItem(mCurrentPage + 1);
break; break;
case REFRESH_THE_LIVEl_PAGE:
// loadingView.show();
// AnchorRecommendItemModel model = event.getAnchorRecommendItemModel();
// itemModelList.add(0, model);
// mPagerAdapter.notifyDataSetChanged();
// verticalViewPager.setCurrentItem(0);
getDrawer();
break;
} }
@ -856,26 +859,27 @@ public class LiveAudienceActivity extends LiveActivity {
private List<AnchorRecommendItemModel> list = new ArrayList<>(); private List<AnchorRecommendItemModel> list = new ArrayList<>();
private void getDrawer() { private void getDrawer() {
//侧边栏轮播
MainNetManager.get(mContext)
.getHot(1, new com.yunbao.common.http.base.HttpCallback<List<SlideInfoModel>>() {
@Override
public void onSuccess(List<SlideInfoModel> data) {
slideInfoModels = data;
}
@Override
public void onError(String error) {
}
});
//推荐位 //推荐位
MainNetManager.get(mContext) MainNetManager.get(mContext)
.anchorRecommend("10", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() { .anchorRecommend("12", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
@Override @Override
public void onSuccess(AnchorRecommendModel anchorRecommendModel) { public void onSuccess(AnchorRecommendModel anchorRecommendModel) {
list = anchorRecommendModel.getList(); list.clear();
slideInfoModels.clear();
List<AnchorRecommendItemModel> models = anchorRecommendModel.getList();
int userIndex = -1;
for (int i = 0; i < list.size(); i++) {
if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) {
userIndex = i;
}
}
if (userIndex != -1) {
models.remove(userIndex);
}
models.add(0, new AnchorRecommendItemModel());
list.addAll(models);
slideInfoModels = anchorRecommendModel.getSlide();
} }
@Override @Override

View File

@ -1,6 +1,8 @@
package com.yunbao.live.dialog; package com.yunbao.live.dialog;
import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.Display; import android.view.Display;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
@ -22,14 +24,19 @@ import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.main.MainNetManager; import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils; import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.RouteUtil;
import com.yunbao.live.R; import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.adapter.SidebarAdapter; import com.yunbao.live.adapter.SidebarAdapter;
import com.yunbao.live.bean.LiveBean; import com.yunbao.live.bean.LiveBean;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveRoomChangeEvent;
import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter; import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import com.yunbao.live.views.PortraitLiveManager;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -40,6 +47,7 @@ import java.util.List;
public class SidebarLiveAudience extends AbsDialogFragment { public class SidebarLiveAudience extends AbsDialogFragment {
//侧边栏背景 //侧边栏背景
private ImageView sidebarBack; private ImageView sidebarBack;
private View mask;
//侧边栏刷新列表 //侧边栏刷新列表
public CommonRefreshView sidebarList; public CommonRefreshView sidebarList;
@ -48,6 +56,8 @@ public class SidebarLiveAudience extends AbsDialogFragment {
private List<SlideInfoModel> slideInfoModels = new ArrayList<>(); private List<SlideInfoModel> slideInfoModels = new ArrayList<>();
private List<AnchorRecommendItemModel> list = new ArrayList<>(); private List<AnchorRecommendItemModel> list = new ArrayList<>();
private int index = 0;
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.view_sidebar_live_audience; return R.layout.view_sidebar_live_audience;
@ -63,6 +73,7 @@ public class SidebarLiveAudience extends AbsDialogFragment {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
Bundle bundle = getArguments(); Bundle bundle = getArguments();
sidebarBack = (ImageView) findViewById(R.id.sidebar_back); sidebarBack = (ImageView) findViewById(R.id.sidebar_back);
mask = findViewById(R.id.mask);
if (bundle != null) { if (bundle != null) {
String avatar = bundle.getString("Avatar"); String avatar = bundle.getString("Avatar");
int liveBg = bundle.getInt("LiveBg"); int liveBg = bundle.getInt("LiveBg");
@ -73,8 +84,10 @@ public class SidebarLiveAudience extends AbsDialogFragment {
//侧边栏背景 //侧边栏背景
if (liveBg == 1) { if (liveBg == 1) {
ImgLoader.displayBlurLive(mContext, avatar, sidebarBack); ImgLoader.displayBlurLive(mContext, avatar, sidebarBack);
mask.setVisibility(View.VISIBLE);
} else { } else {
ImgLoader.display(mContext, R.mipmap.live_bg, sidebarBack); ImgLoader.display(mContext, R.mipmap.live_bg, sidebarBack);
mask.setVisibility(View.GONE);
} }
@ -112,39 +125,46 @@ public class SidebarLiveAudience extends AbsDialogFragment {
@Override @Override
public void refresh() { public void refresh() {
//推荐位 if (index > 0) {
MainNetManager.get(getActivity()) //推荐位
.anchorRecommend("10", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() { MainNetManager.get(getActivity())
@Override .anchorRecommend("12", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
public void onSuccess(AnchorRecommendModel anchorRecommendModel) { @Override
//侧边栏 public void onSuccess(AnchorRecommendModel anchorRecommendModel) {
MainNetManager.get(getActivity()) List<AnchorRecommendItemModel> list = anchorRecommendModel.getList();
.getHot(1, new com.yunbao.common.http.base.HttpCallback<List<SlideInfoModel>>() { int userIndex = -1;
@Override for (int i = 0; i < list.size(); i++) {
public void onSuccess(List<SlideInfoModel> data) { if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) {
List<AnchorRecommendItemModel> list = anchorRecommendModel.getList(); userIndex = i;
list.add(0, new AnchorRecommendItemModel()); }
sidebarAdapter.addData(list); }
sidebarList.onFinish(); if (userIndex != -1) {
sidebarAdapter.setData(data); list.remove(userIndex);
} }
@Override list.add(0, new AnchorRecommendItemModel());
public void onError(String error) {
} sidebarAdapter.addData(list);
}); sidebarAdapter.setData(anchorRecommendModel.getSlide());
sidebarList.onFinish();
}
} @Override
public void onError(String error) {
}
});
} else {
index = index + 1;
}
@Override
public void onError(String error) {
}
});
} }
}); });
sidebarList.initData(); sidebarList.initData();
sidebarAdapter.setOnItemClickListener((bean, position) -> gotoLive(bean.getUid())); sidebarAdapter.setOnItemClickListener((bean, position) -> {
gotoLive(bean.getUid());
dismiss();
});
} }
@Override @Override
@ -182,8 +202,7 @@ public class SidebarLiveAudience extends AbsDialogFragment {
if (liveBean1 == null) { if (liveBean1 == null) {
return; return;
} }
LiveAudienceActivity.forward(getActivity(), liveBean1, liveType, liveTypeVal, "", 0, liveSdk); EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal));
(getActivity()).finish();
}); });
mCheckLivePresenter.checkLive(liveBean); mCheckLivePresenter.checkLive(liveBean);
@ -194,4 +213,12 @@ public class SidebarLiveAudience extends AbsDialogFragment {
} }
}); });
} }
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.REFRESH_THE_LIVEl_PAGE)
);
}
} }

View File

@ -1,6 +1,7 @@
package com.yunbao.live.event; package com.yunbao.live.event;
import com.yunbao.common.bean.ActiveModel; import com.yunbao.common.bean.ActiveModel;
import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.BaseModel;
import com.yunbao.live.bean.OpenParametersModel; import com.yunbao.live.bean.OpenParametersModel;
@ -9,6 +10,16 @@ public class LiveAudienceEvent extends BaseModel {
private ActiveModel model = new ActiveModel(); private ActiveModel model = new ActiveModel();
private String avatar = ""; private String avatar = "";
private OpenParametersModel parametersModel = new OpenParametersModel(); private OpenParametersModel parametersModel = new OpenParametersModel();
private AnchorRecommendItemModel anchorRecommendItemModel = new AnchorRecommendItemModel();
public AnchorRecommendItemModel getAnchorRecommendItemModel() {
return anchorRecommendItemModel;
}
public LiveAudienceEvent setAnchorRecommendItemModel(AnchorRecommendItemModel anchorRecommendItemModel) {
this.anchorRecommendItemModel = anchorRecommendItemModel;
return this;
}
public OpenParametersModel getParametersModel() { public OpenParametersModel getParametersModel() {
return parametersModel; return parametersModel;
@ -60,7 +71,8 @@ public class LiveAudienceEvent extends BaseModel {
WISH_LIST(11, "心愿单"), WISH_LIST(11, "心愿单"),
OPEN_PARAMETERS(12, "开放参数"), OPEN_PARAMETERS(12, "开放参数"),
ACTIVITY_CENTER(13, "活動中心"), ACTIVITY_CENTER(13, "活動中心"),
LIVE_ROOM_EXCEPTION(14, "直播间异常"); LIVE_ROOM_EXCEPTION(14, "直播间异常"),
REFRESH_THE_LIVEl_PAGE(15, "刷新直播页面");
private int type; private int type;
private String name; private String name;

View File

@ -105,7 +105,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
//直播间背景 //直播间背景
private ImageView liveBack; private ImageView liveBack;
private View mask;
//侧滑布局 //侧滑布局
// private DrawerLayout drawerLayout; // private DrawerLayout drawerLayout;
//直播间拆分布局 //直播间拆分布局
@ -184,6 +184,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
//直播页面背景 //直播页面背景
liveBack = mRootContainer.findViewById(R.id.live_back); liveBack = mRootContainer.findViewById(R.id.live_back);
mask = mRootContainer.findViewById(R.id.mask);
} }
@ -219,8 +220,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
//直播间背景 //直播间背景
ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack); ImgLoader.display(mContext, R.mipmap.live_bg, liveBack);
mask.setVisibility(View.GONE);
mLivePlayViewHolder.setCover(data.getThumb()); mLivePlayViewHolder.setCover(data.getThumb());
mLivePlayViewHolder.play(data.getPull()); mLivePlayViewHolder.play(data.getPull());
mLiveRoomViewHolder.setAvatar(data.getAvatar()); mLiveRoomViewHolder.setAvatar(data.getAvatar());
@ -811,6 +812,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (liveBg == 1) { if (liveBg == 1) {
//直播间背景 //直播间背景
ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack); ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack);
mask.setVisibility(View.VISIBLE);
} }
//回传参数 //回传参数
Bus.get().post(new LiveAudienceEvent() Bus.get().post(new LiveAudienceEvent()

View File

@ -18,6 +18,7 @@
android:src="@mipmap/live_bg" /> android:src="@mipmap/live_bg" />
<View <View
android:id="@+id/mask"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#70000000" /> android:background="#70000000" />

View File

@ -9,10 +9,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never" /> android:overScrollMode="never" />
<com.yunbao.live.views.LoadingView
android:id="@+id/loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
</RelativeLayout> </RelativeLayout>

View File

@ -10,6 +10,7 @@
android:scaleType="centerCrop" /> android:scaleType="centerCrop" />
<View <View
android:id="@+id/mask"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#90000000" /> android:background="#90000000" />