From 0d883b76fe95fa3491e2e4e7e0ab695fb3789620 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Fri, 13 Apr 2018 14:13:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV3.2=20DEV?= =?UTF-8?q?=EF=BC=8820180412-1000=EF=BC=89=E6=B5=8B=E8=AF=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E6=B1=87=E6=80=BB(=E5=AE=8C=E6=88=90=E9=83=A8?= =?UTF-8?q?=E5=88=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/databind/BindingAdapters.java | 33 ------- .../java/com/gh/common/util/ImageUtils.kt | 19 ++++ .../ask/AskQuestionsRecommendsAdapter.java | 88 +++++++++--------- .../ask/AskQuestionsRecommendsFragment.java | 34 ++----- .../gamecenter/ask/AskSubjectPageAdapter.java | 3 + .../gamecenter/ask/AskSubjectViewHolder.java | 4 +- .../gamecenter/ask/QuestionsEditFragment.java | 90 +++++++++++-------- .../ask/QuestionsEditIndexAdapter.java | 1 + .../ask/QuestionsEditIndexFragment.java | 4 +- .../ask/QuestionsEditPicAdapter.java | 19 ++-- .../ask/entity/QuestionsDetailEntity.kt | 6 +- .../QuestionsDetailAdapter.java | 10 +-- .../QuestionsDetailFragment.java | 4 + .../ask/subject/AskSubjectAdapter.java | 5 ++ .../suggest/SuggestPicViewHolder.java | 4 + .../res/layout/ask_recommends_subject.xml | 6 +- .../layout/ask_recommends_subject_item.xml | 1 - .../main/res/layout/ask_subject_top_item.xml | 1 + .../res/layout/fragment_questions_edit.xml | 2 +- app/src/main/res/layout/fragment_userinfo.xml | 2 +- app/src/main/res/layout/message_item.xml | 1 - .../main/res/layout/questionsdetail_item.xml | 6 +- 22 files changed, 170 insertions(+), 173 deletions(-) diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 78ba35c565..f9cc86e5f2 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -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; diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.kt b/app/src/main/java/com/gh/common/util/ImageUtils.kt index 2683398b20..9a0a5bddf8 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/ImageUtils.kt @@ -56,6 +56,25 @@ class ImageUtils private constructor() { .build() } + // 自适应图片宽高 + fun displayScale(simpleDraweeView: SimpleDraweeView?, url: String?, height: Int) { + val listener = object : BaseControllerListener() { + 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?) { diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsAdapter.java index 83185757bd..1ce5f13765 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsAdapter.java @@ -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 { - public static final int MAX_PROGRESS = 200; - private OnListClickListener mListClickListener; - private OnSubjectProgressListener mProgressListener; private List 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 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 { 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 { } } - 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 { return index; } - interface OnSubjectProgressListener { - void onStartProgress(); - } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java index d94c0da196..37360e515d 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskQuestionsRecommendsFragment.java @@ -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 - implements AskQuestionsRecommendsAdapter.OnSubjectProgressListener { +public class AskQuestionsRecommendsFragment extends ListFragment { @BindView(R.id.reuse_nodata_skip_tv_btn) View mSkipHint; @@ -46,17 +42,7 @@ public class AskQuestionsRecommendsFragment extends ListFragment 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); } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskSubjectPageAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/AskSubjectPageAdapter.java index 2c5da977fa..7bbbd1acdc 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskSubjectPageAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskSubjectPageAdapter.java @@ -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)); }); diff --git a/app/src/main/java/com/gh/gamecenter/ask/AskSubjectViewHolder.java b/app/src/main/java/com/gh/gamecenter/ask/AskSubjectViewHolder.java index cd28cadf51..b178f1d02b 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AskSubjectViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AskSubjectViewHolder.java @@ -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 { @BindView(R.id.ask_recommends_subject_vp) - ViewPager mSubjectViewPager; + AutoScrollViewPager mSubjectViewPager; @BindView(R.id.ask_recommends_subject_rg) RadioGroup mSubjectRG; diff --git a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java index 8265b2f7cf..12c7e0a09a 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditFragment.java @@ -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) { + } + } + } diff --git a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexAdapter.java index 6f2d12b623..63c8383501 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexAdapter.java @@ -88,5 +88,6 @@ public class QuestionsEditIndexAdapter extends ListAdapter public void setSearchKey(String searchKey) { this.mSearchKey = searchKey; + notifyDataSetChanged(); } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexFragment.java b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexFragment.java index b71ac3549f..a19ad9367a 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/QuestionsEditIndexFragment.java @@ -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 { @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.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(); }); } } diff --git a/app/src/main/java/com/gh/gamecenter/ask/entity/QuestionsDetailEntity.kt b/app/src/main/java/com/gh/gamecenter/ask/entity/QuestionsDetailEntity.kt index 9d637d1e2d..0e89ea9f25 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/entity/QuestionsDetailEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/ask/entity/QuestionsDetailEntity.kt @@ -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 { diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java index fa889dfacf..caac8abeed 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailAdapter.java @@ -195,9 +195,9 @@ public class QuestionsDetailAdapter extends ListAdapter { List 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 { } - 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 { 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); diff --git a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java index b8b4ca49cc..7207d86982 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/questionsdetail/QuestionsDetailFragment.java @@ -230,6 +230,7 @@ public class QuestionsDetailFragment extends ListFragment 0) { + mQuestionsDetailEntity.setFollowCount(mQuestionsDetailEntity.getFollowCount() - 1); + } mQuestionsDetailEntity.getMe().setQuestionFollowed(false); mAdapter.notifyItemChanged(0); toast("取消关注"); diff --git a/app/src/main/java/com/gh/gamecenter/ask/subject/AskSubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/ask/subject/AskSubjectAdapter.java index 109a70fddc..8ff9b17056 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/subject/AskSubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/ask/subject/AskSubjectAdapter.java @@ -74,6 +74,11 @@ public class AskSubjectAdapter extends ListAdapter { 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; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java index 8877feb832..cf7a65ee8e 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java @@ -22,6 +22,10 @@ public class SuggestPicViewHolder extends BaseRecyclerViewHolder> { @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); diff --git a/app/src/main/res/layout/ask_recommends_subject.xml b/app/src/main/res/layout/ask_recommends_subject.xml index c849a8ef1c..05e6565a7d 100644 --- a/app/src/main/res/layout/ask_recommends_subject.xml +++ b/app/src/main/res/layout/ask_recommends_subject.xml @@ -5,11 +5,11 @@ android:layout_height = "wrap_content" android:background = "@android:color/white" > - - + android:layout_height = "97dp" + android:overScrollMode = "never"/> + android:orientation = "horizontal" />