fix:礼物弹窗适配RTL:Viewpager换ViewPager2
fix:移除礼物弹窗-余额文案
This commit is contained in:
@@ -31,7 +31,11 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
|
||||
@@ -128,7 +132,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
*/
|
||||
private final boolean userOnMic;
|
||||
private View mContentView;
|
||||
private ViewPager gridView;
|
||||
private ViewPager2 gridView;
|
||||
private PageIndicatorView indicatorView;
|
||||
private RecyclerView avatarList;
|
||||
private GiftAvatarAdapter avatarListAdapter;
|
||||
@@ -322,6 +326,38 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
params.dimAmount = 0f;
|
||||
getWindow().setAttributes(params);
|
||||
mSubscribe = IMNetEaseManager.get().getChatRoomEventObservable().subscribe(this::onReceiveRoomEvent);
|
||||
disableSlideClose();
|
||||
}
|
||||
|
||||
private void disableSlideClose(){
|
||||
BottomSheetBehavior bottomSheetBehavior = getBottomSheetBehavior();
|
||||
if (bottomSheetBehavior != null) {
|
||||
bottomSheetBehavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
|
||||
@Override
|
||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
||||
if(newState == BottomSheetBehavior.STATE_DRAGGING){
|
||||
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
protected View getBottomSheetLayout() {
|
||||
return getDelegate().findViewById(com.google.android.material.R.id.design_bottom_sheet);
|
||||
}
|
||||
|
||||
protected BottomSheetBehavior<View> getBottomSheetBehavior() {
|
||||
View view = getBottomSheetLayout();
|
||||
if (view != null) {
|
||||
return BottomSheetBehavior.from(view);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -558,13 +594,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
total = total.setScale(0, RoundingMode.DOWN);
|
||||
tvTextGold.setText(total.toPlainString());
|
||||
}
|
||||
|
||||
String goldNumText = getContext().getString(R.string.gold_num_text, goldWalletInfo.getDiamondNum());
|
||||
SpannableBuilder builder = new SpannableBuilder();
|
||||
builder.append(context.getText(R.string.gift_wallet_overage), new ForegroundColorSpan(
|
||||
context.getResources().getColor(R.color.white_transparent_50)))
|
||||
.append(goldNumText);
|
||||
tvTextGold.setText(builder.build());
|
||||
}
|
||||
|
||||
private void setUpdateTipsText() {
|
||||
@@ -822,68 +851,56 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
SparseArray<RecyclerView> cacheItemView = new SparseArray<>();
|
||||
lastSelectedItem = pagerList.get(defaultSelectPage).get(defaultSelectItem);
|
||||
setGoldOrRadishText(lastSelectedItem);
|
||||
gridView.setAdapter(new PagerAdapter() {
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return pagerList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
|
||||
return view == object;
|
||||
}
|
||||
gridView.setAdapter(new RecyclerView.Adapter() {
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Object instantiateItem(@NonNull ViewGroup container, int pagePos) {
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
RecyclerView recyclerView;
|
||||
MultiTypeAdapter<GiftInfoVm> giftAdapter;
|
||||
if (cacheItemView.get(pagePos) == null) {
|
||||
recyclerView = new RecyclerView(context);
|
||||
recyclerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(context, 4));
|
||||
giftAdapter = new MultiTypeAdapter<>(BR.item, true);
|
||||
recyclerView.setAdapter(giftAdapter);
|
||||
cacheItemView.put(pagePos, recyclerView);
|
||||
} else {
|
||||
recyclerView = cacheItemView.get(pagePos);
|
||||
giftAdapter = (MultiTypeAdapter<GiftInfoVm>) recyclerView.getAdapter();
|
||||
}
|
||||
giftAdapter.clearAllItem();
|
||||
giftAdapter.addData(pagerList.get(pagePos));
|
||||
|
||||
giftAdapter.setOnItemClickListener(item -> {
|
||||
if (item.data.isSendMsg()) {
|
||||
etSendMessage.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
etSendMessage.setVisibility(View.GONE);
|
||||
}
|
||||
if (lastSelectedItem != null) {
|
||||
lastSelectedItem.isSelect.set(false);
|
||||
}
|
||||
item.isSelect.set(true);
|
||||
lastSelectedItem = item;
|
||||
currentGiftInfo = item.data;
|
||||
setGoldOrRadishText(lastSelectedItem);
|
||||
isShowDrawGiftModel = true;
|
||||
updateDrawGift();
|
||||
});
|
||||
container.addView(recyclerView);
|
||||
return recyclerView;
|
||||
recyclerView = new RecyclerView(context);
|
||||
recyclerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(context, 4));
|
||||
return new RecyclerView.ViewHolder(recyclerView){};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
|
||||
RecyclerView recyclerView = cacheItemView.get(position);
|
||||
MultiTypeAdapter<GiftInfoVm> adapter = (MultiTypeAdapter) recyclerView.getAdapter();
|
||||
adapter.getAllItems().clear();
|
||||
container.removeView(recyclerView);
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
RecyclerView recyclerView = (RecyclerView) holder.itemView;
|
||||
MultiTypeAdapter<GiftInfoVm> giftAdapter;
|
||||
if (recyclerView.getAdapter() instanceof MultiTypeAdapter) {
|
||||
giftAdapter = (MultiTypeAdapter) recyclerView.getAdapter();
|
||||
} else {
|
||||
giftAdapter = new MultiTypeAdapter<>(BR.item, true);
|
||||
recyclerView.setAdapter(giftAdapter);
|
||||
giftAdapter.setOnItemClickListener(item -> {
|
||||
if (item.data.isSendMsg()) {
|
||||
etSendMessage.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
etSendMessage.setVisibility(View.GONE);
|
||||
}
|
||||
if (lastSelectedItem != null) {
|
||||
lastSelectedItem.isSelect.set(false);
|
||||
}
|
||||
item.isSelect.set(true);
|
||||
lastSelectedItem = item;
|
||||
currentGiftInfo = item.data;
|
||||
setGoldOrRadishText(lastSelectedItem);
|
||||
isShowDrawGiftModel = true;
|
||||
updateDrawGift();
|
||||
});
|
||||
}
|
||||
giftAdapter.clearAllItem();
|
||||
giftAdapter.addData(pagerList.get(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return pagerList.size();
|
||||
}
|
||||
});
|
||||
gridView.setCurrentItem(defaultSelectPage);
|
||||
gridView.addOnPageChangeListener(new OnPageSelectedListener() {
|
||||
gridView.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
if (pagerList.size() > 1) {
|
||||
|
@@ -262,7 +262,7 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@+id/gridView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
Reference in New Issue
Block a user