光环助手V3.2 DEV(20180412-1000)测试问题汇总(完成部分)
This commit is contained in:
@ -41,39 +41,6 @@ public class BindingAdapters {
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter("messageCommand")
|
||||
public static void setMessageCommand(TextView view, String command) {
|
||||
switch (command) {
|
||||
case "answer":
|
||||
view.setText("回答了我的问题");
|
||||
break;
|
||||
case "reply":
|
||||
view.setText("回复了我");
|
||||
break;
|
||||
case "follow_question":
|
||||
view.setText("回答了我关注的问题");
|
||||
break;
|
||||
case "reply_comment_answer":
|
||||
view.setText("回复了我");
|
||||
break;
|
||||
case "answer_comment":
|
||||
view.setText("评论了我");
|
||||
break;
|
||||
case "answer_vote":
|
||||
view.setText("赞同了我的回答");
|
||||
break;
|
||||
case "comment_vote":
|
||||
view.setText("赞了我");
|
||||
break;
|
||||
case "answer_comment_vote":
|
||||
view.setText("赞了我");
|
||||
break;
|
||||
case "invited":
|
||||
view.setText("邀请我回答");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter("serverTypePadding")
|
||||
public static void setServerTypePadding(TextView view, String serverType) {
|
||||
int paddRight = 0;
|
||||
|
||||
@ -56,6 +56,25 @@ class ImageUtils private constructor() {
|
||||
.build()
|
||||
}
|
||||
|
||||
// 自适应图片宽高
|
||||
fun displayScale(simpleDraweeView: SimpleDraweeView?, url: String?, height: Int) {
|
||||
val listener = object : BaseControllerListener<ImageInfo>() {
|
||||
override fun onFinalImageSet(id: String?, imageInfo: ImageInfo?, animatable: Animatable?) {
|
||||
if (imageInfo == null) {
|
||||
return
|
||||
}
|
||||
val layoutParams = simpleDraweeView?.layoutParams
|
||||
val scale = imageInfo.width.toFloat()/imageInfo.height.toFloat()
|
||||
layoutParams?.width = (height * scale).toInt()
|
||||
simpleDraweeView?.layoutParams = layoutParams
|
||||
}
|
||||
}
|
||||
simpleDraweeView?.controller = Fresco.newDraweeControllerBuilder()
|
||||
.setUri(url)
|
||||
.setControllerListener(listener)
|
||||
.build()
|
||||
}
|
||||
|
||||
// 设置缩放类型,设置按压状态下的叠加图
|
||||
fun display(resources: Resources?, simpleDraweeView: SimpleDraweeView?,
|
||||
scaleType: ScalingUtils.ScaleType?, url: String?) {
|
||||
|
||||
@ -6,7 +6,6 @@ import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import com.gh.base.OnListClickListener;
|
||||
@ -20,34 +19,34 @@ import com.gh.gamecenter.baselist.ListAdapter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager;
|
||||
|
||||
/**
|
||||
* Created by khy on 2/12/17.
|
||||
*/
|
||||
|
||||
public class AskQuestionsRecommendsAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
public static final int MAX_PROGRESS = 200;
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
private OnSubjectProgressListener mProgressListener;
|
||||
|
||||
private List<AskSubjectEntity> mSubjectEntity;
|
||||
|
||||
private ProgressBar mSubjectProgressBar;
|
||||
private ViewPager mSubjectViewPager;
|
||||
private AutoScrollViewPager mSubjectViewPager;
|
||||
|
||||
private int mWidth;
|
||||
|
||||
public AskQuestionsRecommendsAdapter(Context context, OnListClickListener listClickListener, OnSubjectProgressListener progressListener) {
|
||||
public AskQuestionsRecommendsAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mWidth = context.getResources().getDisplayMetrics().widthPixels;
|
||||
mProgressListener = progressListener;
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
public void setSubjectEntity(List<AskSubjectEntity> subjectEntity) {
|
||||
if (subjectEntity == null) return;
|
||||
mSubjectEntity = new ArrayList<>(subjectEntity);
|
||||
if (subjectEntity == null) {
|
||||
mSubjectEntity = new ArrayList<>();
|
||||
} else {
|
||||
mSubjectEntity = new ArrayList<>(subjectEntity);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@ -97,40 +96,40 @@ public class AskQuestionsRecommendsAdapter extends ListAdapter<AnswerEntity> {
|
||||
AskSubjectViewHolder subjectViewHolder = (AskSubjectViewHolder) holder;
|
||||
subjectViewHolder.mSubjectRG.removeAllViews();
|
||||
int size = mSubjectEntity.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
RadioButton radioButton = new RadioButton(mContext);
|
||||
radioButton.setButtonDrawable(new ColorDrawable(0));
|
||||
radioButton.setBackgroundResource(R.drawable.ask_recommends_vp_selector);
|
||||
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(mWidth / size, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
subjectViewHolder.mSubjectRG.addView(radioButton, i, params);
|
||||
if (i == 0) radioButton.setChecked(true);
|
||||
if (size > 1) {
|
||||
for (int i = 0; i < size; i++) {
|
||||
RadioButton radioButton = new RadioButton(mContext);
|
||||
radioButton.setButtonDrawable(new ColorDrawable(0));
|
||||
radioButton.setBackgroundResource(R.drawable.ask_recommends_vp_selector);
|
||||
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(mWidth / size, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
subjectViewHolder.mSubjectRG.addView(radioButton, i, params);
|
||||
if (i == 0) radioButton.setChecked(true);
|
||||
}
|
||||
}
|
||||
|
||||
mSubjectViewPager = subjectViewHolder.mSubjectViewPager;
|
||||
if (subjectViewHolder.mSubjectViewPager.getAdapter() == null) {
|
||||
subjectViewHolder.mSubjectViewPager.setAdapter(new AskSubjectPageAdapter(mContext, mSubjectEntity));
|
||||
mProgressListener.onStartProgress();
|
||||
subjectViewHolder.mSubjectViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
subjectViewHolder.mSubjectViewPager.setInterval(3000);
|
||||
subjectViewHolder.mSubjectViewPager.startAutoScroll();
|
||||
subjectViewHolder.mSubjectViewPager.setAdapter(new AskSubjectPageAdapter(mContext, mSubjectEntity));
|
||||
subjectViewHolder.mSubjectViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
View view = subjectViewHolder.mSubjectRG.getChildAt(position % size);
|
||||
if (view instanceof RadioButton) {
|
||||
((RadioButton) view).setChecked(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
View view = subjectViewHolder.mSubjectRG.getChildAt(position % size);
|
||||
if (view instanceof RadioButton) {
|
||||
((RadioButton) view).setChecked(true);
|
||||
}
|
||||
mProgressListener.onStartProgress(); // 每次滑动完成重新启动进度条
|
||||
}
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
case ItemViewType.ITEM_BODY:
|
||||
int index = mSubjectEntity == null || mSubjectEntity.isEmpty() ? position : position - TOP_ITEM_COUNT;
|
||||
@ -145,11 +144,13 @@ public class AskQuestionsRecommendsAdapter extends ListAdapter<AnswerEntity> {
|
||||
}
|
||||
}
|
||||
|
||||
void setSubjectProgress(int progress) {
|
||||
if (mSubjectProgressBar != null) mSubjectProgressBar.setProgress(progress);
|
||||
if (progress == MAX_PROGRESS && mSubjectViewPager != null) {
|
||||
int currentItem = mSubjectViewPager.getCurrentItem();
|
||||
mSubjectViewPager.setCurrentItem(++currentItem, true);
|
||||
void viewPagerAutoScroll(boolean isStart) {
|
||||
if (mSubjectViewPager != null) {
|
||||
if (isStart) {
|
||||
mSubjectViewPager.startAutoScroll();
|
||||
} else {
|
||||
mSubjectViewPager.stopAutoScroll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,7 +166,4 @@ public class AskQuestionsRecommendsAdapter extends ListAdapter<AnswerEntity> {
|
||||
return index;
|
||||
}
|
||||
|
||||
interface OnSubjectProgressListener {
|
||||
void onStartProgress();
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,14 +15,11 @@ import com.gh.gamecenter.QuestionEditActivity;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.ask.entity.AskSubjectEntity;
|
||||
import com.gh.gamecenter.ask.entity.Questions;
|
||||
import com.gh.gamecenter.baselist.ListFragment;
|
||||
import com.gh.gamecenter.baselist.LoadStatus;
|
||||
import com.gh.gamecenter.baselist.LoadType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
|
||||
@ -32,8 +29,7 @@ import static com.gh.gamecenter.ask.AskFragment.COMMUNITIES_SELECT_REQUEST;
|
||||
* Created by khy on 2/12/17.
|
||||
*/
|
||||
|
||||
public class AskQuestionsRecommendsFragment extends ListFragment<AnswerEntity, AskQuestionsRecommendsViewModel>
|
||||
implements AskQuestionsRecommendsAdapter.OnSubjectProgressListener {
|
||||
public class AskQuestionsRecommendsFragment extends ListFragment<AnswerEntity, AskQuestionsRecommendsViewModel> {
|
||||
|
||||
@BindView(R.id.reuse_nodata_skip_tv_btn)
|
||||
View mSkipHint;
|
||||
@ -46,17 +42,7 @@ public class AskQuestionsRecommendsFragment extends ListFragment<AnswerEntity, A
|
||||
|
||||
@Override
|
||||
protected void handleMessage(Message msg) {
|
||||
if (msg.what == 0) { // 验证码倒计时
|
||||
int arg1 = msg.arg1;
|
||||
arg1++;
|
||||
if (arg1 <= AskQuestionsRecommendsAdapter.MAX_PROGRESS) {
|
||||
if (mAdapter != null) mAdapter.setSubjectProgress(arg1);
|
||||
Message message = new Message();
|
||||
message.what = 0;
|
||||
message.arg1 = arg1;
|
||||
mBaseHandler.sendMessageDelayed(message, 10); // 因为过程会阻塞,只能取个大致的延迟值
|
||||
}
|
||||
} else if (msg.what == 1) {
|
||||
if (msg.what == 1) {
|
||||
mRefreshHint.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
@ -138,7 +124,7 @@ public class AskQuestionsRecommendsFragment extends ListFragment<AnswerEntity, A
|
||||
}
|
||||
|
||||
protected AskQuestionsRecommendsAdapter provideListAdapter() {
|
||||
return mAdapter == null ? mAdapter = new AskQuestionsRecommendsAdapter(getContext(), this, this) : mAdapter;
|
||||
return mAdapter == null ? mAdapter = new AskQuestionsRecommendsAdapter(getContext(), this) : mAdapter;
|
||||
}
|
||||
|
||||
@OnClick(R.id.reuse_nodata_skip_tv_btn)
|
||||
@ -179,26 +165,16 @@ public class AskQuestionsRecommendsFragment extends ListFragment<AnswerEntity, A
|
||||
}, 500);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartProgress() {
|
||||
List<AskSubjectEntity> value = mListViewModel.getSubjectLiveData().getValue();
|
||||
if (value == null || value.size() <= 1) return;
|
||||
mBaseHandler.removeMessages(0);
|
||||
Message message = new Message();
|
||||
message.what = 0;
|
||||
message.arg1 = 0;
|
||||
mBaseHandler.sendMessage(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
onStartProgress();
|
||||
mAdapter.viewPagerAutoScroll(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
mBaseHandler.removeMessages(0);
|
||||
mAdapter.viewPagerAutoScroll(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,8 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.gh.common.util.DisplayUtils;
|
||||
import com.gh.common.util.ImageUtils;
|
||||
import com.gh.gamecenter.CommunitySubjectActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.adapter.RecyclingPagerAdapter;
|
||||
@ -39,6 +41,7 @@ public class AskSubjectPageAdapter extends RecyclingPagerAdapter {
|
||||
}
|
||||
AskSubjectEntity entity = mEntityList.get(position % mEntityList.size());
|
||||
binding.setEntity(entity);
|
||||
ImageUtils.Companion.getInstance().displayScale(binding.subjectIcon, entity.getIcon(), DisplayUtils.dip2px(mContext, 67));
|
||||
binding.getRoot().setOnClickListener(v -> {
|
||||
mContext.startActivity(CommunitySubjectActivity.getIntent(mContext, entity));
|
||||
});
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package com.gh.gamecenter.ask;
|
||||
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.view.View;
|
||||
import android.widget.RadioGroup;
|
||||
|
||||
@ -9,6 +8,7 @@ import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.AskSubjectEntity;
|
||||
|
||||
import butterknife.BindView;
|
||||
import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager;
|
||||
|
||||
/**
|
||||
* Created by khy on 1/04/18.
|
||||
@ -17,7 +17,7 @@ import butterknife.BindView;
|
||||
public class AskSubjectViewHolder extends BaseRecyclerViewHolder<AskSubjectEntity> {
|
||||
|
||||
@BindView(R.id.ask_recommends_subject_vp)
|
||||
ViewPager mSubjectViewPager;
|
||||
AutoScrollViewPager mSubjectViewPager;
|
||||
@BindView(R.id.ask_recommends_subject_rg)
|
||||
RadioGroup mSubjectRG;
|
||||
|
||||
|
||||
@ -91,6 +91,7 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
|
||||
private FlexboxLayout mTagFl;
|
||||
|
||||
private static final int QUESTION_CONTENT_MAX_LENGTH = 300;
|
||||
private static final int QUESTION_TITLE_MAX_LENGTH = 50;
|
||||
private static final int QUESTION_TAG_MAX_COUNT = 5;
|
||||
|
||||
@ -210,41 +211,8 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
mPicRv.setAdapter(mAdapter);
|
||||
|
||||
mTitle.setOnEditorActionListener((v, actionId, event) -> (event.getKeyCode() == KeyEvent.KEYCODE_ENTER));
|
||||
|
||||
mTitle.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
String etContent = s.toString();
|
||||
if (etContent.contains(" ")) {
|
||||
mTitle.setText(etContent.replaceAll(" ", ""));
|
||||
mTitle.setSelection(start);
|
||||
return;
|
||||
}
|
||||
if (s.toString().length() == 0) {
|
||||
addQuestionsIndexFragment(null);
|
||||
} else {
|
||||
addQuestionsIndexFragment(s.toString());
|
||||
}
|
||||
|
||||
if (s.length() > QUESTION_TITLE_MAX_LENGTH) {
|
||||
mTitle.setText("");
|
||||
String newText = s.toString().substring(0, QUESTION_TITLE_MAX_LENGTH);
|
||||
mTitle.setText(newText);
|
||||
mTitle.setSelection(mTitle.getText().length());
|
||||
Utils.toast(getContext(), "标题最多50个字");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
}
|
||||
});
|
||||
|
||||
mTitle.addTextChangedListener(new LimitTextWatcher(mTitle));
|
||||
mContent.addTextChangedListener(new LimitTextWatcher(mContent));
|
||||
if (mQuestionsEntity != null) {
|
||||
initEditQuestion();
|
||||
setNavigationTitle("编辑问题");
|
||||
@ -475,7 +443,7 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
}
|
||||
|
||||
private void showEditBackDialog() {
|
||||
DialogUtils.showCancelAlertDialog(getActivity(), "提示", "确定放弃编辑吗??"
|
||||
DialogUtils.showCancelAlertDialog(getActivity(), "提示", "确定放弃提问吗?"
|
||||
, "再想想", " 放弃", null, () -> {
|
||||
if (getActivity() != null) getActivity().finish();
|
||||
});
|
||||
@ -653,4 +621,54 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
if (mTagFl != null) mTagFl.addView(view, 0);
|
||||
}
|
||||
|
||||
private class LimitTextWatcher implements TextWatcher {
|
||||
private EditText mEditText;
|
||||
|
||||
public LimitTextWatcher(EditText e) {
|
||||
mEditText = e;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (mEditText == mTitle) {
|
||||
String etContent = s.toString();
|
||||
if (etContent.contains(" ")) {
|
||||
mTitle.setText(etContent.replaceAll(" ", ""));
|
||||
mTitle.setSelection(start);
|
||||
return;
|
||||
}
|
||||
if (mQuestionsEntity == null) {
|
||||
if (s.toString().length() == 0) {
|
||||
addQuestionsIndexFragment(null);
|
||||
} else {
|
||||
addQuestionsIndexFragment(s.toString());
|
||||
}
|
||||
}
|
||||
if (s.length() > QUESTION_TITLE_MAX_LENGTH) {
|
||||
mTitle.setText("");
|
||||
String newText = s.toString().substring(0, QUESTION_TITLE_MAX_LENGTH);
|
||||
mTitle.setText(newText);
|
||||
mTitle.setSelection(mTitle.getText().length());
|
||||
Utils.toast(getContext(), "标题最多50个字");
|
||||
}
|
||||
} else if (mEditText == mContent) {
|
||||
if (s.length() > QUESTION_CONTENT_MAX_LENGTH) {
|
||||
mContent.setText("");
|
||||
String newText = s.toString().substring(0, QUESTION_CONTENT_MAX_LENGTH);
|
||||
mContent.setText(newText);
|
||||
mContent.setSelection(mContent.getText().length());
|
||||
Utils.toast(getContext(), "内容最多300个字");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -88,5 +88,6 @@ public class QuestionsEditIndexAdapter extends ListAdapter<QuestionsIndexEntity>
|
||||
|
||||
public void setSearchKey(String searchKey) {
|
||||
this.mSearchKey = searchKey;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ import com.gh.common.view.VerticalItemDecoration;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.QuestionsIndexEntity;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
import com.gh.gamecenter.baselist.ListFragment;
|
||||
import com.gh.gamecenter.baselist.LoadStatus;
|
||||
import com.gh.gamecenter.baselist.LoadType;
|
||||
@ -39,7 +38,7 @@ public class QuestionsEditIndexFragment extends ListFragment<QuestionsIndexEntit
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ListAdapter provideListAdapter() {
|
||||
protected QuestionsEditIndexAdapter provideListAdapter() {
|
||||
return mAdapter == null ? mAdapter = new QuestionsEditIndexAdapter(getContext(), this) : mAdapter;
|
||||
}
|
||||
|
||||
@ -48,6 +47,7 @@ public class QuestionsEditIndexFragment extends ListFragment<QuestionsIndexEntit
|
||||
if (getArguments() != null)
|
||||
mSearchKey = getArguments().getString(EntranceUtils.KEY_QUESTIONS_SEARCH_KEY, null);
|
||||
super.onCreate(savedInstanceState);
|
||||
provideListAdapter().setSearchKey(mSearchKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -9,11 +9,13 @@ import com.gh.base.OnListClickListener;
|
||||
import com.gh.common.util.ImageUtils;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.suggest.SuggestPicViewHolder;
|
||||
import com.jakewharton.rxbinding.view.RxView;
|
||||
import com.lightgame.adapter.BaseRecyclerAdapter;
|
||||
import com.lightgame.utils.Utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Created by khy on 2017/3/31.
|
||||
@ -32,14 +34,13 @@ public class QuestionsEditPicAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View view = mLayoutInflater.inflate(R.layout.suggest_pic_item, parent, false);
|
||||
return new SuggestPicViewHolder(view, mListListener);
|
||||
return new SuggestPicViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||
if (holder instanceof SuggestPicViewHolder) {
|
||||
SuggestPicViewHolder viewHolder = (SuggestPicViewHolder) holder;
|
||||
viewHolder.setClickData(picList);
|
||||
if (position == getItemCount() - 1 && picList.size() < 3) {
|
||||
viewHolder.delate.setVisibility(View.GONE);
|
||||
ImageUtils.Companion.display(viewHolder.icon, R.drawable.suggest_add_pic_icon);
|
||||
@ -47,13 +48,15 @@ public class QuestionsEditPicAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
viewHolder.icon.setImageURI(picList.get(position));
|
||||
viewHolder.delate.setVisibility(View.VISIBLE);
|
||||
}
|
||||
RxView.clicks(viewHolder.itemView)
|
||||
.throttleFirst(2, TimeUnit.SECONDS)
|
||||
.subscribe(aVoid -> {
|
||||
mListListener.onListClick(viewHolder.itemView, position, picList);
|
||||
});
|
||||
|
||||
viewHolder.delate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
picList.remove(holder.getAdapterPosition());
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
viewHolder.delate.setOnClickListener(v -> {
|
||||
picList.remove(holder.getAdapterPosition());
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ class QuestionsDetailEntity() : Parcelable {
|
||||
var me: MeEntity = MeEntity()
|
||||
|
||||
@SerializedName("follow_count")
|
||||
var followCount: String? = null
|
||||
var followCount: Int = 0
|
||||
|
||||
constructor(parcel: Parcel) : this() {
|
||||
id = parcel.readString()
|
||||
@ -46,7 +46,7 @@ class QuestionsDetailEntity() : Parcelable {
|
||||
communityName = parcel.readString()
|
||||
isExistDrafts = parcel.readByte() != 0.toByte()
|
||||
me = parcel.readParcelable(MeEntity::class.java.classLoader)
|
||||
followCount = parcel.readString()
|
||||
followCount = parcel.readInt()
|
||||
}
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
@ -60,7 +60,7 @@ class QuestionsDetailEntity() : Parcelable {
|
||||
parcel.writeString(communityName)
|
||||
parcel.writeByte(if (isExistDrafts) 1 else 0)
|
||||
parcel.writeParcelable(me, flags)
|
||||
parcel.writeString(followCount)
|
||||
parcel.writeInt(followCount)
|
||||
}
|
||||
|
||||
override fun describeContents(): Int {
|
||||
|
||||
@ -195,9 +195,9 @@ public class QuestionsDetailAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
List<String> tags = mQuestionsDetailEntity.getTags();
|
||||
holder.mTagRl.removeAllViews();
|
||||
addTag(holder.mTagRl, mQuestionsDetailEntity.getCommunityName());
|
||||
for (String tag : tags) {
|
||||
addTag(holder.mTagRl, tag);
|
||||
addTag(holder.mTagRl, mQuestionsDetailEntity.getCommunityName(), false);
|
||||
for (int i = 0; i < tags.size(); i++) {
|
||||
addTag(holder.mTagRl, tags.get(i), i == tags.size() - 1);
|
||||
}
|
||||
|
||||
String description = mQuestionsDetailEntity.getDescription();
|
||||
@ -244,7 +244,7 @@ public class QuestionsDetailAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
}
|
||||
|
||||
private void addTag(FlexboxLayout mTagRl, String tag) {
|
||||
private void addTag(FlexboxLayout mTagRl, String tag, boolean isLastTag) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.questionsdedit_tag_item, null);
|
||||
TextView tagTv = (TextView) view;
|
||||
tagTv.setText(tag);
|
||||
@ -252,7 +252,7 @@ public class QuestionsDetailAdapter extends ListAdapter<AnswerEntity> {
|
||||
tagTv.setTextColor(ContextCompat.getColor(mContext, R.color.hint));
|
||||
FlexboxLayout.LayoutParams params = new FlexboxLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
params.setMargins(0, DisplayUtils.dip2px(mContext, 5), DisplayUtils.dip2px(mContext, 8),
|
||||
params.setMargins(0, DisplayUtils.dip2px(mContext, 5), !isLastTag ? DisplayUtils.dip2px(mContext, 8) : 0,
|
||||
DisplayUtils.dip2px(mContext, 5));
|
||||
tagTv.setLayoutParams(params);
|
||||
mTagRl.addView(view);
|
||||
|
||||
@ -230,6 +230,7 @@ public class QuestionsDetailFragment extends ListFragment<AnswerEntity, NormalLi
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
mQuestionsDetailEntity.getMe().setQuestionFollowed(true);
|
||||
mQuestionsDetailEntity.setFollowCount(mQuestionsDetailEntity.getFollowCount() + 1);
|
||||
mAdapter.notifyItemChanged(0);
|
||||
toast("已关注 ");
|
||||
}
|
||||
@ -244,6 +245,9 @@ public class QuestionsDetailFragment extends ListFragment<AnswerEntity, NormalLi
|
||||
, new ConcernUtils.onConcernListener() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
if (mQuestionsDetailEntity.getFollowCount() > 0) {
|
||||
mQuestionsDetailEntity.setFollowCount(mQuestionsDetailEntity.getFollowCount() - 1);
|
||||
}
|
||||
mQuestionsDetailEntity.getMe().setQuestionFollowed(false);
|
||||
mAdapter.notifyItemChanged(0);
|
||||
toast("取消关注");
|
||||
|
||||
@ -74,6 +74,11 @@ public class AskSubjectAdapter extends ListAdapter<AnswerEntity> {
|
||||
case ItemViewType.ITEM_TOP:
|
||||
AskSubjectViewHolder subjectViewHolder = (AskSubjectViewHolder) holder;
|
||||
subjectViewHolder.mBinding.setEntity(mSubjectEntity);
|
||||
if (mEntityList == null || mEntityList.isEmpty()) {
|
||||
subjectViewHolder.mBinding.askSubjectTopTag.setVisibility(View.GONE);
|
||||
} else {
|
||||
subjectViewHolder.mBinding.askSubjectTopTag.setVisibility(View.VISIBLE);
|
||||
}
|
||||
break;
|
||||
case ItemViewType.ITEM_FOOTER:
|
||||
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
|
||||
|
||||
@ -22,6 +22,10 @@ public class SuggestPicViewHolder extends BaseRecyclerViewHolder<List<String>> {
|
||||
@BindView(R.id.pic_item_delate)
|
||||
public ImageView delate;
|
||||
|
||||
public SuggestPicViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
}
|
||||
|
||||
public SuggestPicViewHolder(View itemView, OnListClickListener listClickListener) {
|
||||
super(itemView, listClickListener);
|
||||
itemView.setOnClickListener(this);
|
||||
|
||||
Reference in New Issue
Block a user