package com.edufound.reader.cusview; import android.content.Context; import android.graphics.drawable.GradientDrawable; import android.text.TextUtils; import android.util.AttributeSet; import android.view.Gravity; import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import com.edufound.reader.R; import com.edufound.reader.bean.ModelBean; import com.edufound.reader.util.EfunboxUtil; import com.edufound.reader.util.GlideUtils; import com.edufound.reader.util.SizeUtils; import com.jakewharton.rxbinding4.view.RxView; import java.util.concurrent.TimeUnit; public class ModelViewG extends FrameLayout { Context mContext; LayoutInflater mLayoutInflater; LinearLayout mItemLayout; ImageView mBackgroundImg; FrameLayout mRuleBtn; public ModelViewG(@NonNull Context context) { super(context); mContext = context; mLayoutInflater = LayoutInflater.from(mContext); } public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void initView() { EfunboxUtil.initDesignSize(mContext); FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(SizeUtils.dp2px(mContext, 428) , SizeUtils.dp2px(mContext, 598)); this.setLayoutParams(layoutParams); layoutParams.gravity = Gravity.CENTER; FrameLayout modelViewF = (FrameLayout) mLayoutInflater.inflate(R.layout.cusview_model_view_g, null); mBackgroundImg = modelViewF.findViewById(R.id.cusview_model_view_g_background); mRuleBtn = modelViewF.findViewById(R.id.cusview_model_view_g_rule); mItemLayout = modelViewF.findViewById(R.id.cusview_model_view_g_item_layout); GradientDrawable drawable = new GradientDrawable(); drawable.setSize(1, SizeUtils.dp2px(mContext, 46)); mItemLayout.setDividerDrawable(drawable); mItemLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); this.addView(modelViewF); } public void setView(String bgurl, ModelBean bean, ModelViewF.ModelViewFOnItemClick listener) { mItemLayout.removeAllViews(); if (!TextUtils.isEmpty(bgurl)) { GlideUtils.loadImageSizeKipMemoryCache(mContext, bgurl, mBackgroundImg); } else { GlideUtils.loadImageSizeKipMemoryCache(mContext, R.drawable.test_view_f_bg, mBackgroundImg); } RxView.clicks(mRuleBtn).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { listener.clickRule(bean); }); LinearLayout.LayoutParams itemParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1); for (int i = 0; i < bean.getReadUserList().size(); i++) { ConstraintLayout item = (ConstraintLayout) mLayoutInflater.inflate(R.layout.adapter_item_cusview_model_view_g, null); ImageView icon = item.findViewById(R.id.cusview_model_view_g_layout_item_icon); GlideUtils.loadRoundCircleImage(mContext, bean.getReadUserList().get(i).getExample().getShareImg(), icon, SizeUtils.dp2px(mContext, 10)); TextView name = item.findViewById(R.id.cusview_model_view_g_layout_item_name); name.setText(bean.getReadUserList().get(i).getExample().getTitle()); TextView enterNum = item.findViewById(R.id.cusview_model_view_g_layout_item_enter_num); enterNum.setText(bean.getReadUserList().get(i).getCount()); FrameLayout openRankList = item.findViewById(R.id.cusview_model_view_g_layout_item_ranklist); item.setLayoutParams(itemParams); int finalI = i; RxView.clicks(item).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { listener.clickItem(bean.getReadUserList().get(finalI)); }); RxView.clicks(openRankList).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { listener.openRankList(bean.getReadUserList().get(finalI)); }); mItemLayout.addView(item); } } }