From 322f4fd268134546abff22501d79aebda4e2a9f1 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Mon, 30 Sep 2019 18:33:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98=E8=AF=A6?= =?UTF-8?q?=E6=83=85/=E5=9B=9E=E7=AD=94=E8=AF=A6=E6=83=85UI(15.16)=20https?= =?UTF-8?q?://gitlab.ghzs.com/pm/halo-app-issues/issues/650#note=5F30101?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DialogUtils.java | 4 +- .../java/com/gh/common/util/Extensions.kt | 4 + .../java/com/gh/common/view/DrawableView.kt | 19 +- .../com/gh/common/view/ExpendTextView.java | 6 +- .../qa/answer/detail/AnswerDetailFragment.kt | 60 ++-- .../detail/QuestionsDetailAdapter.kt | 78 +++-- .../answer_detail_follow_icon.png | Bin 0 -> 465 bytes .../answer_detail_more_answer_icon.png | Bin 0 -> 794 bytes .../question_detail_answer_icon.png | Bin 0 -> 1224 bytes .../question_detail_concern_icon.png | Bin 0 -> 364 bytes .../question_detail_concerned_icon.png | Bin 0 -> 736 bytes .../question_detail_invite_icon.png | Bin 0 -> 1916 bytes .../question_detail_myanswer_icon.png | Bin 0 -> 1297 bytes .../res/layout/fragment_answer_detail.xml | 34 +- .../main/res/layout/questionsdetail_item.xml | 314 +++++++++--------- app/src/main/res/values/colors.xml | 2 +- 16 files changed, 275 insertions(+), 246 deletions(-) create mode 100644 app/src/main/res/drawable-xxhdpi/answer_detail_follow_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/answer_detail_more_answer_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/question_detail_answer_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/question_detail_concern_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/question_detail_concerned_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/question_detail_invite_icon.png create mode 100644 app/src/main/res/drawable-xxhdpi/question_detail_myanswer_icon.png diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 4afc06ae10..a1ec50edc5 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -866,8 +866,8 @@ public class DialogUtils { TextView negativeTv = contentView.findViewById(R.id.negative); TextView positiveTv = contentView.findViewById(R.id.positive); TextView content = contentView.findViewById(R.id.content); - positiveTv.setBackground(DrawableView.getOvalDrawable(R.color.text_f5f5f5)); - negativeTv.setBackground(DrawableView.getOvalDrawable(R.color.theme)); + positiveTv.setBackground(DrawableView.getOvalDrawable(R.color.text_f5f5f5, 999)); + negativeTv.setBackground(DrawableView.getOvalDrawable(R.color.theme, 999)); content.setText(Html.fromHtml(context.getString(R.string.video_upload_draft_dialog_content))); negativeTv.setOnClickListener(view -> { diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 41e16d3e1e..49e5af9e8b 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -326,6 +326,10 @@ fun Int.toColor(): Int { return HaloApp.getInstance().application.resources.getColor(this) } +fun Int.toResString(): String { + return HaloApp.getInstance().application.resources.getString(this) +} + fun Int.toSimpleCount(): String { return NumberUtils.transSimpleCount(this) } diff --git a/app/src/main/java/com/gh/common/view/DrawableView.kt b/app/src/main/java/com/gh/common/view/DrawableView.kt index b82ca23062..d9eec923d4 100644 --- a/app/src/main/java/com/gh/common/view/DrawableView.kt +++ b/app/src/main/java/com/gh/common/view/DrawableView.kt @@ -9,6 +9,8 @@ import androidx.core.content.ContextCompat import com.gh.common.util.DisplayUtils import com.halo.assistant.HaloApp import android.graphics.drawable.StateListDrawable +import android.widget.TextView +import androidx.annotation.DrawableRes import com.gh.common.util.dip2px object DrawableView { @@ -18,7 +20,6 @@ object DrawableView { return getServerDrawable(ContextCompat.getColor(HaloApp.getInstance().application, colorId)) } - @JvmStatic fun getServerDrawable(colorCode: String): Drawable { return getServerDrawable(Color.parseColor(colorCode)) @@ -33,10 +34,10 @@ object DrawableView { } @JvmStatic - fun getOvalDrawable(@ColorRes colorId: Int): Drawable { + fun getOvalDrawable(@ColorRes colorId: Int, radius: Float = 999F): Drawable { val drawable = GradientDrawable() drawable.setColor(ContextCompat.getColor(HaloApp.getInstance().application, colorId)) - drawable.cornerRadius = DisplayUtils.dip2px(999F).toFloat() + drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat() return drawable } @@ -66,4 +67,16 @@ object DrawableView { drawable.cornerRadius = radius return drawable } + + @JvmStatic + fun setTextDrawable(textView: TextView, @DrawableRes drawableId: Int?, text: String? = null) { + val drawable = if (drawableId != null){ + ContextCompat.getDrawable(HaloApp.getInstance().application, drawableId) + } else { + null + } + drawable?.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight) + textView.setCompoundDrawables(drawable, null, null, null) + if (text != null) textView.text = text + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/view/ExpendTextView.java b/app/src/main/java/com/gh/common/view/ExpendTextView.java index 0f1f6d1361..c9cbb31b06 100644 --- a/app/src/main/java/com/gh/common/view/ExpendTextView.java +++ b/app/src/main/java/com/gh/common/view/ExpendTextView.java @@ -21,7 +21,6 @@ import androidx.core.content.ContextCompat; public class ExpendTextView extends AppCompatTextView { private CharSequence mSnapshotText; - private CharSequence mCloseText; private String mExpendText = "...全文"; @@ -48,7 +47,6 @@ public class ExpendTextView extends AppCompatTextView { super.onLayout(changed, left, top, right, bottom); if (mInitLayout && !mOpenLayout && getLineCount() > mMaxLines) { mSnapshotText = getText(); - mCloseText = getText(); mInitLayout = false; showExpendButton(); } @@ -81,7 +79,7 @@ public class ExpendTextView extends AppCompatTextView { float expendTextWidth = paint.measureText(mExpendText); CharSequence content = mSnapshotText.subSequence(start, lastLineEnd); if (viewWidth - lastLineRight > expendTextWidth) { - content = content.toString().trim() + mExpendText; + content = content.toString().trim() + mExpendText ; } else { CharSequence lastText = mSnapshotText.subSequence(lastLineStart, lastLineEnd); for (int i = lastText.length() - 1; i > 0; i--) { @@ -93,7 +91,7 @@ public class ExpendTextView extends AppCompatTextView { } } } - SpannableStringBuilder msp = new SpannableStringBuilder(mCloseText); + SpannableStringBuilder msp = new SpannableStringBuilder(mSnapshotText); int length = msp.length(); int startPosition = content.length() - mExpendText.length(); startPosition = startPosition < 0 ? 0 : startPosition; diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt index fe229844fa..787a608a7b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt @@ -32,6 +32,7 @@ import com.gh.common.AppExecutor import com.gh.common.TimeElapsedHelper import com.gh.common.history.HistoryHelper import com.gh.common.util.* +import com.gh.common.view.DrawableView import com.gh.common.view.RichEditor import com.gh.gamecenter.* import com.gh.gamecenter.databinding.FragmentAnswerDetailBinding @@ -414,34 +415,37 @@ class AnswerDetailFragment : NormalFragment() { // 是否已回答 when (mAnswerStatus) { ANSWERED_MY_ANSWER -> { - mBinding.statusTv.text = "编辑回答" - mBinding.statusTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.title)) - mBinding.statusIv.setImageResource(R.drawable.questionsdetail_myanswer_icon) + mBinding.statusTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + mBinding.statusTv, + R.drawable.question_detail_answer_icon, + "编辑回答") } ANSWERED_NOT_MY_ANSWER -> { - mBinding.statusTv.text = "我的回答" - mBinding.statusTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.theme)) - mBinding.statusIv.setImageResource(R.drawable.ic_answer_detail_edit_full) + mBinding.statusTv.setTextColor(R.color.text_999999.toColor()) + DrawableView.setTextDrawable( + mBinding.statusTv, + R.drawable.question_detail_myanswer_icon, + "我的回答") } NOT_ANSWERED_BUT_HAVE_DRAFT -> { - mBinding.statusTv.text = "继续回答" - mBinding.statusTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.title)) - mBinding.statusIv.setImageResource(R.drawable.questionsdetail_answer_icon) + mBinding.statusTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + mBinding.statusTv, + R.drawable.question_detail_answer_icon, + "继续回答") } NOT_ANSWERED_YET -> { - mBinding.statusTv.text = "我来回答" - mBinding.statusTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.theme)) - mBinding.statusIv.setImageResource(R.drawable.ic_answer_detail_edit_empty) + mBinding.statusTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + mBinding.statusTv, + R.drawable.question_detail_answer_icon, + "我来回答") } } if (me.isAnswerOwn) { - mBinding.followTv.isEnabled = false - mBinding.followTv.setText(R.string.myself) - mBinding.followTv.visibility = View.VISIBLE - mBinding.followTv.alpha = 1f - mBinding.followTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.button_gray)) - mBinding.followTv.setBackgroundResource(R.drawable.button_border_gray) + mBinding.followTv.visibility = View.GONE } else { mBinding.followTv.isEnabled = true if (!me.isFollower) { @@ -697,7 +701,6 @@ class AnswerDetailFragment : NormalFragment() { R.id.tv_share, R.id.container_dislike, R.id.reuse_no_connection, - R.id.status_iv, R.id.status_tv, R.id.answer_count_container, R.id.container_like, @@ -769,7 +772,7 @@ class AnswerDetailFragment : NormalFragment() { } } - R.id.status_tv, R.id.status_iv -> { + R.id.status_tv -> { mViewModel.answerDetail?.let { when (mAnswerStatus) { ANSWERED_MY_ANSWER -> editAnswer(it) @@ -999,10 +1002,8 @@ class AnswerDetailFragment : NormalFragment() { private fun updateFollowBtn(isFollowed: Boolean) { if (isFollowed) { if (mBinding.followTv.visibility == View.GONE) return - - mBinding.followTv.text = "已关注" - mBinding.followTv.background = null - mBinding.followTv.setTextColor(ContextCompat.getColor(context!!, R.color.theme)) + DrawableView.setTextDrawable(mBinding.followTv, null, "已关注") + mBinding.followTv.setTextColor(R.color.text_999999.toColor()) mBinding.followTv.postDelayed({ if (context == null) return@postDelayed mBinding.followTv.animate() @@ -1013,10 +1014,13 @@ class AnswerDetailFragment : NormalFragment() { .start() }, 2000L) } else { - mBinding.followTv.setText(R.string.concern) mBinding.followTv.visibility = View.VISIBLE - mBinding.followTv.background = ContextCompat.getDrawable(context!!, R.drawable.button_normal_style) - mBinding.followTv.setTextColor(ContextCompat.getColor(context!!, R.color.all_white)) + mBinding.followTv.background = DrawableView.getOvalDrawable(R.color.background, 2F) + mBinding.followTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + mBinding.followTv, + R.drawable.answer_detail_follow_icon, + R.string.concern.toResString()) } } @@ -1122,7 +1126,7 @@ class AnswerDetailFragment : NormalFragment() { @JavascriptInterface fun onVideoClick(content: String) { - toast("video click:" + content) + toast("video click:" + content) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.kt index 8036f03a08..ad4d9c5b27 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.kt @@ -5,12 +5,10 @@ import android.content.Context import android.graphics.Color import android.text.TextUtils import android.view.Gravity -import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView -import androidx.annotation.StringRes import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -19,6 +17,7 @@ import com.gh.base.BaseRecyclerViewHolder import com.gh.base.OnListClickListener import com.gh.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.view.DrawableView import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder @@ -222,29 +221,47 @@ class QuestionsDetailAdapter( // "我来回答" if (!TextUtils.isEmpty(mQuestionEntity!!.me.myAnswerId)) { - updateAnswerTv(holder.answerTv, R.string.question_detail_myanswer) + holder.answerTv.setTextColor(R.color.text_999999.toColor()) + DrawableView.setTextDrawable( + holder.answerTv, + R.drawable.question_detail_myanswer_icon, + R.string.question_detail_myanswer.toResString()) } else if (mQuestionEntity!!.isExistDrafts) { - updateAnswerTv(holder.answerTv, R.string.question_detail_resume_answer) + holder.answerTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + holder.answerTv, + R.drawable.question_detail_answer_icon, + R.string.question_detail_resume_answer.toResString()) } else { - updateAnswerTv(holder.answerTv, R.string.question_detail_answer) + holder.answerTv.setTextColor(R.color.theme.toColor()) + DrawableView.setTextDrawable( + holder.answerTv, + R.drawable.question_detail_answer_icon, + R.string.question_detail_answer.toResString()) } // "关注问题" when { mQuestionEntity!!.me.isQuestionOwn -> { holder.concern.setBackgroundResource(R.drawable.questions_detail_tag_bg) - holder.concern.setTextColor(ContextCompat.getColor(mContext, R.color.hint)) - holder.concern.text = "编辑问题" + holder.concern.setTextColor(ContextCompat.getColor(mContext, R.color.text_666666)) + DrawableView.setTextDrawable(holder.concern, null, "编辑问题") } mQuestionEntity!!.me.isQuestionFollowed -> { holder.concern.setBackgroundResource(R.drawable.questions_detail_tag_bg) - holder.concern.setTextColor(ContextCompat.getColor(mContext, R.color.hint)) - holder.concern.text = "已关注" + holder.concern.setTextColor(ContextCompat.getColor(mContext, R.color.text_666666)) + DrawableView.setTextDrawable( + holder.concern, + R.drawable.question_detail_concerned_icon, + "已关注") } else -> { holder.concern.setBackgroundResource(R.drawable.button_normal_style) holder.concern.setTextColor(Color.WHITE) - holder.concern.text = "关注问题" + DrawableView.setTextDrawable( + holder.concern, + R.drawable.question_detail_concern_icon, + "关注问题") } } @@ -272,19 +289,24 @@ class QuestionsDetailAdapter( } private fun addTag(mTagRl: FlexboxLayout, tag: String, isLastTag: Boolean) { - val view = LayoutInflater.from(mContext).inflate(R.layout.questionsdedit_tag_item, null) - val tagTv = view as TextView - tagTv.text = tag - tagTv.setBackgroundResource(R.drawable.button_normal_style) - tagTv.setTextColor(Color.WHITE) - val params = FlexboxLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT) - params.setMargins(0, DisplayUtils.dip2px(mContext, 5f), if (!isLastTag) DisplayUtils.dip2px(mContext, 8f) else 0, - DisplayUtils.dip2px(mContext, 5f)) - tagTv.layoutParams = params - mTagRl.addView(view) + val tagTv = TextView(mContext) + mTagRl.addView(tagTv) - view.setOnClickListener { + tagTv.text = tag + tagTv.gravity = Gravity.CENTER + tagTv.textSize = 12F + tagTv.background = DrawableView.getOvalDrawable(R.color.text_EEF5FB, 2F) + tagTv.setTextColor(R.color.theme.toColor()) + tagTv.setPadding(8F.dip2px(), 0, 8F.dip2px(), 0) + + val params = FlexboxLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 24F.dip2px()) + params.setMargins(0, + DisplayUtils.dip2px(mContext, 10f), + if (!isLastTag) DisplayUtils.dip2px(mContext, 12f) else 0, + DisplayUtils.dip2px(mContext, 10f)) + tagTv.layoutParams = params + + tagTv.setOnClickListener { DataUtils.onMtaEvent(mContext, "问题标签", mQuestionEntity!!.community.name, mQuestionEntity!!.title + "-" + tag) mContext.startActivity(AskColumnDetailActivity.getIntentByTag(mContext, tag, CommunityEntity(mQuestionEntity!!.community.id, @@ -292,18 +314,6 @@ class QuestionsDetailAdapter( } } - private fun updateAnswerTv(answerTv: TextView, @StringRes stringId: Int) { - answerTv.text = mContext.getString(stringId) - - val drawable = if (R.string.question_detail_myanswer == stringId) { - ContextCompat.getDrawable(mContext, R.drawable.questionsdetail_myanswer_icon) - } else { - ContextCompat.getDrawable(mContext, R.drawable.questionsdetail_answer_icon) - } - drawable?.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight) - answerTv.setCompoundDrawables(drawable, null, null, null) - } - override fun getItemCount(): Int { if (mQuestionEntity == null) { return 0 diff --git a/app/src/main/res/drawable-xxhdpi/answer_detail_follow_icon.png b/app/src/main/res/drawable-xxhdpi/answer_detail_follow_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c19c82691f76bf78a1637ffa0de1b2655ca546e9 GIT binary patch literal 465 zcmV;?0WSWDP)Px$i%CR5R9Fe^m`zRtF${&{fZzaADsci9NUXR59DxmpYkkj z6Ckyn1As)#SS4!5ajJA01`zI|9lzM|>z9nCjWPQArvxC^_g=rlrT$BKfq?roCm>vR z*NW5U9eB^tV=>1hGzXb<1`iC5X2j~c(kM6_Df7MC`O3%Dp5$0DM$#t7XSvR26wNAc zjDp5la(IJ?yHde-YXERNJnroAK7mmp`Qh9>Pi!+@ zuy&i14Q?i9+(w(Gq+XJTz^FC$Nh)qrlRN}Q2|4YPHjPd8qTYPjX*}4YzUWWf_1^3( zpG9x*^(UlWRi3OwVbn9HN5RrhPye}5HJY2f5>=wP3FMwn_vo)B3SeHjIZ5L=sd2WY zr(;ImRML1(YMkxZkPx%)Ja4^R7ee#l}%_9K@`WkX^@a8L5mR-5mLmXIeD_s3auZ+;;B$d(k6wV1+8AB z;3YyuK{QCzU_{cU2Ql~oQczmF2x9RT@uZM~f)FLxL)1#X{Jr2TlQnIUf#JRR&wIap zGdnwL1cO0;S6A1)TCLVio0+3A?zq_iBJ`vMynRRVQ7Lx1-6sQme_os9z{hDyXgzVA#Cau&dAwzAp)`k@rt7w$rq{Qx*E4@Z6wapzmkyWpoOTUV~9NL YFUyz~&&}I^mjD0&07*qoM6N<$f-o6(`v3p{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/question_detail_answer_icon.png b/app/src/main/res/drawable-xxhdpi/question_detail_answer_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..399e5c25278dd32505cd81f53e34b5b3fe322f7c GIT binary patch literal 1224 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 Hu0mjfOet%o literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/fragment_answer_detail.xml b/app/src/main/res/layout/fragment_answer_detail.xml index 8e3cbd5c4f..27a2a3cb2a 100644 --- a/app/src/main/res/layout/fragment_answer_detail.xml +++ b/app/src/main/res/layout/fragment_answer_detail.xml @@ -87,7 +87,6 @@ - - + - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/questionsdetail_item.xml b/app/src/main/res/layout/questionsdetail_item.xml index 428efbc5b5..7c902b8212 100644 --- a/app/src/main/res/layout/questionsdetail_item.xml +++ b/app/src/main/res/layout/questionsdetail_item.xml @@ -1,212 +1,218 @@ - + + android:id="@+id/questionsdetail_item_tag_sv" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:paddingTop="10dp" + android:scrollbars="none"> + android:id="@+id/questionsdetail_item_tag" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" /> - + + android:id="@+id/questionsdetail_item_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="6dp" + android:layout_marginRight="20dp" + android:textColor="@color/black" + android:textSize="16sp" + android:textStyle="bold" /> + android:id="@+id/questionsdetail_concern_rl" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="12dp" + android:layout_marginRight="20dp"> + android:id="@+id/questionsdetail_concern" + android:layout_width="wrap_content" + android:layout_height="30dp" + android:layout_alignParentRight="true" + android:background="@drawable/button_normal_style" + android:drawableLeft="@drawable/question_detail_concern_icon" + android:drawablePadding="4dp" + android:gravity="center" + android:paddingLeft="10dp" + android:paddingRight="10dp" + android:text="关注问题" + android:textColor="@android:color/white" + android:textSize="12sp" /> - + android:id="@+id/questionsdetail_concern_count" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:includeFontPadding="false" + android:textColor="@color/text_666666" + android:textSize="13sp" + tools:text="1人关注" /> + + + android:id="@+id/questionsdetail_line_top" + android:layout_width="match_parent" + android:layout_height="@dimen/cutting_line" + android:layout_marginTop="10dp" + android:background="@color/cutting_line" /> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + android:id="@+id/questionsdetail_invite" + android:layout_width="0dp" + android:layout_height="50dp" + android:layout_weight="1" + android:background="@android:color/white" + app:layout_constraintLeft_toRightOf="@id/questionsdetail_line_center" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="@id/questionsdetail_line_center"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:drawableLeft="@drawable/question_detail_invite_icon" + android:drawablePadding="8dp" + android:gravity="center" + android:text="@string/question_detail_invite" + android:textColor="@color/theme" + android:textSize="14sp" /> - + + android:id="@+id/questionsdetail_line_center" + android:layout_width="1dp" + android:layout_height="50dp" + android:background="@color/cutting_line" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toBottomOf="@id/questionsdetail_line_top" /> + android:id="@+id/questionsdetail_answer" + android:layout_width="0dp" + android:layout_height="50dp" + android:layout_weight="1" + android:background="@android:color/white" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toLeftOf="@+id/questionsdetail_line_center" + app:layout_constraintTop_toTopOf="@+id/questionsdetail_line_center"> - - + android:id="@+id/questionsdetail_answer_tv" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:drawableLeft="@drawable/question_detail_answer_icon" + android:drawablePadding="8dp" + android:gravity="center" + android:text="@string/question_detail_answer" + android:textColor="@color/theme" + android:textSize="14sp" /> + + + + android:id="@+id/questiondetail_related_question_container" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@color/background" + android:paddingTop="15dp" + android:visibility="gone" + tools:visibility="visible"> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/all_white" + android:padding="20dp"> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + android:layout_gravity="center_vertical" + android:src="@drawable/ic_related_question" /> + android:text="关联问题(已解决的同类问题)" + android:textColor="@color/theme" + android:textSize="14sp" /> + android:visibility="gone" /> + android:id="@+id/questiondetail_related_question_title_tv" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/questiondetail_related_question_link_container" + android:layout_marginTop="12dp" + android:textColor="@color/text_3a3a3a" + android:textSize="16sp" + android:textStyle="bold" + tools:text="不想用砖石买,又没体力了怎么办?" /> - - + android:id="@+id/questionsdetail_item_answercount" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/background" + android:gravity="center_vertical" + android:paddingLeft="20dp" + android:paddingTop="10dp" + android:paddingBottom="2dp" + android:textColor="@color/title" + android:textSize="11sp" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 2d4947738c..357df5751a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -121,5 +121,5 @@ #FF700F #181927 #e6f3ff - + #EEF5FB \ No newline at end of file