diff --git a/app/src/main/assets/rich_editor.js b/app/src/main/assets/rich_editor.js index 19e62786fc..50b44d5930 100644 --- a/app/src/main/assets/rich_editor.js +++ b/app/src/main/assets/rich_editor.js @@ -106,6 +106,10 @@ RE.setFocusByEnd = function() { // alert("ddddddd") } +RE.formatBlock = function() { + document.execCommand('formatBlock', false, 'p'); +} + RE.undo = function() { document.execCommand('undo', false, null); } @@ -166,6 +170,7 @@ RE.setFontSize = function(fontSize){ RE.setHeading = function(heading) { document.execCommand('formatBlock', false, ''); + RE.sendElementNameToNative() } RE.setIndent = function() { @@ -190,6 +195,11 @@ RE.setJustifyRight = function() { RE.setBlockquote = function() { document.execCommand('formatBlock', false, '
'); + RE.restorerange(); + document.execCommand("styleWithCSS", null, true); + document.execCommand('foreColor', false, "0xff0000"); + document.execCommand("styleWithCSS", null, false); + RE.sendElementNameToNative() } RE.insertImage = function(url) { @@ -453,7 +463,7 @@ RE.sendElementNameToNative = function() { if (selection.getRangeAt) { var range = selection.getRangeAt(0); var container = range.startContainer; - var elements = ""; + var elements = " " + container.localName + " "; var parentElement; while(true) { if(parentElement != null) { @@ -464,7 +474,7 @@ RE.sendElementNameToNative = function() { if (parentElement == null || parentElement.localName == null) { break; } - elements = elements + " " + parentElement.localName + elements = elements + " " + parentElement.localName + " " } window.OnCursorChangeListener.onElements(elements); } diff --git a/app/src/main/java/com/gh/common/view/RichEditor.java b/app/src/main/java/com/gh/common/view/RichEditor.java index a8cb126b16..18ca9f02e4 100644 --- a/app/src/main/java/com/gh/common/view/RichEditor.java +++ b/app/src/main/java/com/gh/common/view/RichEditor.java @@ -445,6 +445,9 @@ public class RichEditor extends WebView { exec("javascript:RE.setUnderline();"); } + public void formatBlock() { + exec("javascript:RE.formatBlock();"); + } public String getText() { return AskUtils.stripHtml(mContents); diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.kt index 76b8b3c30a..00df683a41 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.kt @@ -28,6 +28,7 @@ import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity import com.halo.assistant.HaloApp import com.lightgame.config.CommonDebug import com.lightgame.utils.Utils +import com.lightgame.view.CheckableImageView import com.zhihu.matisse.Matisse import com.zhihu.matisse.MimeType import com.zhihu.matisse.engine.impl.PicassoEngine @@ -38,9 +39,25 @@ class AnswerEditFragment : NormalFragment() { private val mTitle by bindView(R.id.answer_edit_title) private val mEditContent by bindView(R.id.answer_edit_content) - private val mImgIcon by bindView(R.id.answer_edit_img_icon) + private val mImgIcon by bindView(R.id.editor_image) private val mEditPlaceholder by bindView(R.id.answer_placeholder) + private val mEditorFont by bindView(R.id.editor_font) + private val mEditorLink by bindView(R.id.editor_link) + private val mEditorParagraph by bindView(R.id.editor_paragraph) + private val mEditorFontBold by bindView(R.id.editor_font_bold) + private val mEditorFontItalic by bindView(R.id.editor_font_italic) + private val mEditorFontStrikeThrough by bindView(R.id.editor_font_strikethrough) + private val mEditorParagraphH1 by bindView(R.id.editor_paragraph_h1) + private val mEditorParagraphH2 by bindView(R.id.editor_paragraph_h2) + private val mEditorParagraphH3 by bindView(R.id.editor_paragraph_h3) + private val mEditorParagraphH4 by bindView(R.id.editor_paragraph_h4) + private val mEditorParagraphQuote by bindView(R.id.editor_paragraph_quote) + private val mEditorFontContainer by bindView(R.id.editor_font_container) + private val mEditorParagraphContainer by bindView(R.id.editor_paragraph_container) + private val mEditorLinkContainer by bindView(R.id.editor_link_container) + private val mEditorInsertDetail by bindView(R.id.editor_insert_detail) + private var mProcessingDialog: WaitingDialogFragment? = null private var mUploadImageCancelDialog: Dialog? = null private var postDialog: WaitingDialogFragment? = null @@ -341,21 +358,105 @@ class AnswerEditFragment : NormalFragment() { mViewModel?.saveAnswerDrafts(editContent, isExit) } - @OnClick(R.id.answer_edit_img_icon) + @OnClick(R.id.editor_image, R.id.editor_font, R.id.editor_link, R.id.editor_paragraph, + R.id.editor_font_bold, R.id.editor_font_italic, R.id.editor_font_strikethrough, + R.id.editor_paragraph_h1, R.id.editor_paragraph_h2, R.id.editor_paragraph_h3, + R.id.editor_paragraph_h4, R.id.editor_font_container, R.id.editor_paragraph_container, + R.id.editor_paragraph_quote) override fun onClick(view: View) { - if (view.id == R.id.answer_edit_img_icon) { - - MtaHelper.onEvent("发表答案", "上传图片", mCommunityName) - if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(context)) { - mAgreePostPic = true - DialogUtils.showAlertDialog(context, - "警告", - "当前使用移动网络,上传图片会消耗手机流量", - "我知道了", "", { startMediaStore() }, null) - MtaHelper.onEvent("发表答案", "上传图片-移动网络提示", mCommunityName) - return + when (view.id) { + R.id.editor_image -> { + MtaHelper.onEvent("发表答案", "上传图片", mCommunityName) + if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(context)) { + mAgreePostPic = true + DialogUtils.showAlertDialog(context, + "警告", + "当前使用移动网络,上传图片会消耗手机流量", + "我知道了", "", { startMediaStore() }, null) + MtaHelper.onEvent("发表答案", "上传图片-移动网络提示", mCommunityName) + return + } + startMediaStore() + } + R.id.editor_font -> { + mEditorFont.isChecked = !mEditorFont.isChecked + mEditorParagraph.isChecked = false + mEditorLink.isChecked = false + mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorParagraphContainer.visibility = if (!mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorLinkContainer.visibility = if (!mEditorFont.isChecked) View.VISIBLE else View.GONE + mEditorInsertDetail.visibility = mEditorFontContainer.visibility + } + R.id.editor_paragraph -> { + mEditorParagraph.isChecked = !mEditorParagraph.isChecked + mEditorFont.isChecked = false + mEditorLink.isChecked = false + mEditorParagraphContainer.visibility = if (mEditorParagraph.isChecked) View.VISIBLE else View.GONE + mEditorFontContainer.visibility = if (!mEditorParagraph.isChecked) View.VISIBLE else View.GONE + mEditorLinkContainer.visibility = if (!mEditorParagraph.isChecked) View.VISIBLE else View.GONE + mEditorInsertDetail.visibility = mEditorParagraphContainer.visibility + } + R.id.editor_link -> { + mEditorLink.isChecked = !mEditorLink.isChecked + mEditorFont.isChecked = false + mEditorParagraph.isChecked = false + mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE + mEditorParagraphContainer.visibility = if (!mEditorLink.isChecked) View.VISIBLE else View.GONE + mEditorFontContainer.visibility = if (!mEditorLink.isChecked) View.VISIBLE else View.GONE + mEditorInsertDetail.visibility = mEditorLinkContainer.visibility + } + R.id.editor_font_bold -> { + mEditorFontBold.isChecked = !mEditorFontBold.isChecked + mEditContent.setBold() + } + R.id.editor_font_italic -> { + mEditorFontItalic.isChecked = !mEditorFontItalic.isChecked + mEditContent.setItalic() + } + R.id.editor_font_strikethrough -> { + mEditorFontStrikeThrough.isChecked = !mEditorFontStrikeThrough.isChecked + mEditContent.setStrikeThrough() + } + R.id.editor_paragraph_h1 -> { + if (mEditorParagraphH1.isChecked) { + mEditContent.formatBlock() + } else { + mEditContent.setHeading(1) + } + mEditorParagraphH1.isChecked = !mEditorParagraphH1.isChecked + } + R.id.editor_paragraph_h2 -> { + if (mEditorParagraphH2.isChecked) { + mEditContent.formatBlock() + } else { + mEditContent.setHeading(2) + } + mEditorParagraphH2.isChecked = !mEditorParagraphH2.isChecked + } + R.id.editor_paragraph_h3 -> { + if (mEditorParagraphH3.isChecked) { + mEditContent.formatBlock() + } else { + mEditContent.setHeading(3) + } + mEditorParagraphH3.isChecked = !mEditorParagraphH3.isChecked + } + R.id.editor_paragraph_h4 -> { + if (mEditorParagraphH4.isChecked) { + mEditContent.formatBlock() + } else { + mEditContent.setHeading(4) + } + mEditorParagraphH4.isChecked = !mEditorParagraphH4.isChecked + } + R.id.editor_paragraph_quote -> { + if (mEditorParagraphQuote.isChecked) { + mEditContent.formatBlock() + } else { + mEditContent.setBlockquote() + } + mEditorParagraphQuote.isChecked = !mEditorParagraphQuote.isChecked } - startMediaStore() } } @@ -382,7 +483,21 @@ class AnswerEditFragment : NormalFragment() { private inner class OnCursorChangeListener { @JavascriptInterface fun onElements(elements: String) { + Utils.log("-----------------------") + Utils.log(elements) + Utils.log(mEditContent.html) + Utils.log("-----------------------") + mBaseHandler.post { + mEditorFontBold.isChecked = elements.contains(ELEMENT_NAME_BOLD) + mEditorFontItalic.isChecked = elements.contains(ELEMENT_NAME_ITALIC) + mEditorFontStrikeThrough.isChecked = elements.contains(ELEMENT_NAME_STRIKE) + mEditorParagraphH1.isChecked = elements.contains(ELEMENT_PARAGRAPH_H1) + mEditorParagraphH2.isChecked = elements.contains(ELEMENT_PARAGRAPH_H2) + mEditorParagraphH3.isChecked = elements.contains(ELEMENT_PARAGRAPH_H3) + mEditorParagraphH4.isChecked = elements.contains(ELEMENT_PARAGRAPH_H4) + mEditorParagraphQuote.isChecked = elements.contains(ELEMENT_PARAGRAPH_QUOTE) + } } } @@ -409,5 +524,14 @@ class AnswerEditFragment : NormalFragment() { const val SAVE_DRAFTS_TOAST_COUNT = 3 const val MIN_ANSWER_TEXT_LENGTH = 6 const val MAX_ANSWER_TEXT_LENGTH = 10000 + + const val ELEMENT_NAME_BOLD = " b " + const val ELEMENT_NAME_ITALIC = " i " + const val ELEMENT_NAME_STRIKE = " strike " + const val ELEMENT_PARAGRAPH_H1 = " h1 " + const val ELEMENT_PARAGRAPH_H2 = " h2 " + const val ELEMENT_PARAGRAPH_H3 = " h3 " + const val ELEMENT_PARAGRAPH_H4 = " h4 " + const val ELEMENT_PARAGRAPH_QUOTE = " blockquote " } } \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/editor_font_bold_select.png b/app/src/main/res/drawable-xhdpi/editor_font_bold_select.png new file mode 100644 index 0000000000..22ffbe50ad Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_bold_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_bold_unselect.png b/app/src/main/res/drawable-xhdpi/editor_font_bold_unselect.png new file mode 100644 index 0000000000..591f0bf324 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_bold_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_italic_select.png b/app/src/main/res/drawable-xhdpi/editor_font_italic_select.png new file mode 100644 index 0000000000..ae694d019e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_italic_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_italic_unselect.png b/app/src/main/res/drawable-xhdpi/editor_font_italic_unselect.png new file mode 100644 index 0000000000..164fab3516 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_italic_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_select.png b/app/src/main/res/drawable-xhdpi/editor_font_select.png new file mode 100644 index 0000000000..3e6ce2ebc8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_select.png b/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_select.png new file mode 100644 index 0000000000..e15b60a88d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_unselect.png b/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_unselect.png new file mode 100644 index 0000000000..1af97a7c25 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_strikethrough_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_font_unselect.png b/app/src/main/res/drawable-xhdpi/editor_font_unselect.png new file mode 100644 index 0000000000..917530fd4a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_font_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_image.png b/app/src/main/res/drawable-xhdpi/editor_image.png new file mode 100644 index 0000000000..b33be64b20 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_image.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_link_select.png b/app/src/main/res/drawable-xhdpi/editor_link_select.png new file mode 100644 index 0000000000..60166193ee Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_link_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_link_unselect.png b/app/src/main/res/drawable-xhdpi/editor_link_unselect.png new file mode 100644 index 0000000000..88fd489de6 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_link_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_select.png new file mode 100644 index 0000000000..5ef3c722e1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_unselect.png new file mode 100644 index 0000000000..5d25ef24ff Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h1_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_select.png new file mode 100644 index 0000000000..bfd0eec5c2 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_unselect.png new file mode 100644 index 0000000000..04f0c7e167 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h2_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_select.png new file mode 100644 index 0000000000..1c8da9be43 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_unselect.png new file mode 100644 index 0000000000..556d6fcef6 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h3_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_select.png new file mode 100644 index 0000000000..9637c610a1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_unselect.png new file mode 100644 index 0000000000..75252f620f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_h4_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_select.png new file mode 100644 index 0000000000..fca11380e8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_unselect.png new file mode 100644 index 0000000000..6ecaefd485 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_quote_unselect.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_select.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_select.png new file mode 100644 index 0000000000..d95b41b042 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_select.png differ diff --git a/app/src/main/res/drawable-xhdpi/editor_paragraph_unselect.png b/app/src/main/res/drawable-xhdpi/editor_paragraph_unselect.png new file mode 100644 index 0000000000..08f6329c09 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/editor_paragraph_unselect.png differ diff --git a/app/src/main/res/drawable/editor_font_bold_selector.xml b/app/src/main/res/drawable/editor_font_bold_selector.xml new file mode 100644 index 0000000000..6104b08d14 --- /dev/null +++ b/app/src/main/res/drawable/editor_font_bold_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_font_italic_selector.xml b/app/src/main/res/drawable/editor_font_italic_selector.xml new file mode 100644 index 0000000000..1eebbfbbdc --- /dev/null +++ b/app/src/main/res/drawable/editor_font_italic_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_font_selector.xml b/app/src/main/res/drawable/editor_font_selector.xml new file mode 100644 index 0000000000..97fd47bb6c --- /dev/null +++ b/app/src/main/res/drawable/editor_font_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_font_strikethrough_selector.xml b/app/src/main/res/drawable/editor_font_strikethrough_selector.xml new file mode 100644 index 0000000000..f60fd304b2 --- /dev/null +++ b/app/src/main/res/drawable/editor_font_strikethrough_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_link_selector.xml b/app/src/main/res/drawable/editor_link_selector.xml new file mode 100644 index 0000000000..72ca80d33b --- /dev/null +++ b/app/src/main/res/drawable/editor_link_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_h1_selector.xml b/app/src/main/res/drawable/editor_paragraph_h1_selector.xml new file mode 100644 index 0000000000..646e0d4ac8 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_h1_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_h2_selector.xml b/app/src/main/res/drawable/editor_paragraph_h2_selector.xml new file mode 100644 index 0000000000..4259648c80 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_h2_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_h3_selector.xml b/app/src/main/res/drawable/editor_paragraph_h3_selector.xml new file mode 100644 index 0000000000..5e2586cd97 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_h3_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_h4_selector.xml b/app/src/main/res/drawable/editor_paragraph_h4_selector.xml new file mode 100644 index 0000000000..e1422cd192 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_h4_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_quote_selector.xml b/app/src/main/res/drawable/editor_paragraph_quote_selector.xml new file mode 100644 index 0000000000..7df2ee1d30 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_quote_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/editor_paragraph_selector.xml b/app/src/main/res/drawable/editor_paragraph_selector.xml new file mode 100644 index 0000000000..70cf5d0da4 --- /dev/null +++ b/app/src/main/res/drawable/editor_paragraph_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/editor_insert_container.xml b/app/src/main/res/layout/editor_insert_container.xml new file mode 100644 index 0000000000..3f527200f7 --- /dev/null +++ b/app/src/main/res/layout/editor_insert_container.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_answer_edit.xml b/app/src/main/res/layout/fragment_answer_edit.xml index cf69090862..6aea471042 100644 --- a/app/src/main/res/layout/fragment_answer_edit.xml +++ b/app/src/main/res/layout/fragment_answer_edit.xml @@ -22,8 +22,8 @@ android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_centerVertical = "true" - android:layout_marginBottom = "10dp" android:layout_marginTop = "13dp" + android:layout_marginBottom = "10dp" android:gravity = "center_vertical" android:textColor = "@color/black" android:textSize = "16sp" @@ -61,13 +61,7 @@ android:id = "@+id/answer_edit_line3" android:layout_width = "match_parent" android:layout_height = "@dimen/cutting_line" - android:layout_above = "@+id/answer_edit_img_icon" android:background = "@color/cutting_line" /> - + \ No newline at end of file