【光环助手V4.6.0】论坛发布流程优化(201224-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086

This commit is contained in:
张玉久
2020-12-25 15:40:13 +08:00
parent 093c1e2b15
commit 461efe7101
14 changed files with 195 additions and 107 deletions

View File

@ -160,66 +160,14 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
fun onRichClick(view: View) {
when (view.id) {
R.id.editor_font -> {
mEditorFont.isChecked = !mEditorFont.isChecked
mEditorLink.isChecked = false
val isShouldDelay = if (mEditorFont.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorParagraphContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorFont.isChecked
changeAddLabel(false)
}, if (isShouldDelay) 50 else 0L)
controlEditorFontContainer()
}
R.id.editor_link -> {
mEditorLink.isChecked = !mEditorLink.isChecked
mEditorFont.isChecked = false
val isShouldDelay = if (mEditorLink.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = View.GONE
mEditorParagraphContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorLink.isChecked
changeAddLabel(false)
}, if (isShouldDelay) 50 else 0L)
controlEditorLinkContainer()
}
R.id.add_label_container -> {
mEditorLink.isChecked = false
mEditorFont.isChecked = false
val isShouldDelay = if (mEditorInsertDetailContainer.visibility == View.GONE) {
Util_System_Keyboard.hideSoftKeyboard(this)
changeAddLabel(true)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
changeAddLabel(false)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE
mTagsContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = View.GONE
mEditorFontContainer.visibility = View.GONE
mEditorParagraphContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorInsertDetailContainer.visibility == View.VISIBLE
}, if (isShouldDelay) 50 else 0L)
controlAddLabelContainer()
}
R.id.editor_font_bold -> {
mEditorFontBold.isChecked = !mEditorFontBold.isChecked
@ -320,6 +268,70 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
}
}
private fun controlEditorFontContainer() {
mEditorFont.isChecked = !mEditorFont.isChecked
mEditorLink.isChecked = false
val isShouldDelay = if (mEditorFont.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorParagraphContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorFont.isChecked
changeAddLabel(false)
}, if (isShouldDelay) 50 else 0L)
}
private fun controlEditorLinkContainer() {
mEditorLink.isChecked = !mEditorLink.isChecked
mEditorFont.isChecked = false
val isShouldDelay = if (mEditorLink.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = View.GONE
mEditorParagraphContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorLink.isChecked
changeAddLabel(false)
}, if (isShouldDelay) 50 else 0L)
}
fun controlAddLabelContainer() {
mEditorLink.isChecked = false
mEditorFont.isChecked = false
val isShouldDelay = if (mEditorInsertDetailContainer.visibility == View.GONE) {
Util_System_Keyboard.hideSoftKeyboard(this)
changeAddLabel(true)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
changeAddLabel(false)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE
mTagsContainer.visibility = if (mEditorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = View.GONE
mEditorFontContainer.visibility = View.GONE
mEditorParagraphContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorInsertDetailContainer.visibility == View.VISIBLE
}, if (isShouldDelay) 50 else 0L)
}
override fun handleBackPressed(): Boolean {
if (mIsExtendedKeyboardShow) {
closeExtendedKeyboard()
@ -328,10 +340,6 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
return super.handleBackPressed()
}
override fun onPause() {
super.onPause()
closeExtendedKeyboard()
}
private inner class OnCursorChangeListener {
@JavascriptInterface

View File

@ -1,6 +1,7 @@
package com.gh.gamecenter.personalhome.home
import android.content.Context
import android.text.SpannableStringBuilder
import android.util.SparseBooleanArray
import android.view.View
import android.view.ViewGroup
@ -86,6 +87,15 @@ class UserHistoryAdapter(context: Context,
forumNameTv.text = entity?.community?.name
userIcon.display(historyEntity.user?.border, historyEntity.user?.icon, historyEntity.user?.auth?.icon)
executePendingBindings()
if (historyEntity.type == "community_article" && historyEntity.getPassVideos().isNotEmpty() && historyEntity.images.isNotEmpty()) {
val title = questionTitle.text
val videoSpan = SpanBuilder(" ").image(1, " ".length, R.drawable.ic_article_video_label).build()
questionTitle.text = SpannableStringBuilder()
.append(title)
.append(videoSpan)
}
val command = getUserCommand(historyEntity.type, historyEntity.time, historyEntity.isEdit)
userCommand.text = if (command.isNotEmpty()) command else historyEntity?.user?.name + ""

View File

@ -17,6 +17,7 @@ import android.view.inputmethod.InputMethodManager
import android.widget.*
import androidx.core.content.ContextCompat
import androidx.core.widget.NestedScrollView
import androidx.core.widget.doOnTextChanged
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.GridLayoutManager
@ -49,8 +50,8 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
private val mForumIcon by bindView<GameIconView>(R.id.forum_icon_view)
private val mGameName by bindView<TextView>(R.id.article_game_name)
private val mEditTitle by bindView<EditText>(R.id.article_edit_title)
private val mTitleContainer by bindView<LinearLayout>(R.id.title_container)
private lateinit var mMenuDraft: MenuItem
private lateinit var mMenuPost: MenuItem
private lateinit var mViewModel: ArticleEditViewModel
@ -105,12 +106,14 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
super.onCreate(savedInstanceState)
setToolbarMenu(R.menu.menu_answer_post)
mMenuDraft = mToolbar.menu.findItem(R.id.menu_draft)
mMenuPost = mToolbar.menu.findItem(R.id.menu_answer_post)
mToolbar.navigationIcon = null
mMenuDraft.isVisible = true
mViewModel = ViewModelProviders.of(this).get(ArticleEditViewModel::class.java)
mViewModel.detailEntity = intent.getParcelableExtra(ArticleDetailEntity::class.java.simpleName)
mViewModel.draftEntity = intent.getParcelableExtra(ArticleDraftEntity::class.java.simpleName)
mViewModel.openArticleInNewPage = intent.getBooleanExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, false)
checkPostButtonEnable()
mKeyboardHeightProvider = KeyboardHeightProvider(this)
mEditTitle.post { mKeyboardHeightProvider?.start() }
@ -121,6 +124,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
} else {
mEditPlaceholder.visibility = View.VISIBLE
}
checkPostButtonEnable()
}
mEditTitle.setOnTouchListener { v, event ->
@ -134,6 +138,10 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
//setEditTextInputSpace()
mEditTitle.filters = arrayOf(TextHelper.getFilter(50, "标题最多50个字"))
mEditTitle.doOnTextChanged { text, start, count, after ->
checkPostButtonEnable()
}
// 上传图片完成后的回调(本地图片)
mViewModel.postImageLiveData.observe(this, Observer {
if (it?.status == Status.SUCCESS) {
@ -446,6 +454,14 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
return true
}
private fun checkPostButtonEnable() {
mViewModel.content = getReplaceRealContent()
mMenuPost.actionView.postDelayed({
val isEnabled = mViewModel.checkData()
mMenuPost.actionView.alpha = if (isEnabled) 1f else 0.6f
}, 100)
}
private fun showPatchBackDialog() {
DialogUtils.showNewAlertDialog(this, "提示", "是否保存内容再退出?", "不保存", "保存并退出", null, Gravity.CENTER, {
finish()
@ -494,6 +510,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
beginTransaction.commitAllowingStateLoss()
mViewModel.selectedTags.clear()
mViewModel.selectedTagsChange.postValue(true)
checkPostButtonEnable()
}
override fun onMenuItemClick(item: MenuItem?): Boolean {
@ -540,6 +557,10 @@ class ArticleEditActivity : BaseRichEditorActivity(), KeyboardHeightObserver {
override fun onKeyboardHeightChanged(height: Int, orientation: Int) {
mIsKeyBoardShow = height > 0
if (height > 0) {
changeAddLabel(false)
closeExtendedKeyboard()
}
}
override fun onResume() {

View File

@ -87,7 +87,7 @@ class ArticleEditViewModel(application: Application) : AndroidViewModel(applicat
* 检查标题是否符合规则
* 根据问题标题获取相应标签(问题编辑无需获取)
*/
fun checkDataAndLoadTitleTag(isKeyBoardShow: Boolean = false) :Boolean{
fun checkDataAndLoadTitleTag(isKeyBoardShow: Boolean = false): Boolean {
if (mSelectCommunityData == null) {
ToastUtils.showToast("请选择论坛", if (isKeyBoardShow) Gravity.CENTER else -1)
return false
@ -119,6 +119,17 @@ class ArticleEditViewModel(application: Application) : AndroidViewModel(applicat
return true
}
fun checkData(): Boolean {
if (mSelectCommunityData == null) return false
if (TextUtils.isEmpty(title)) return false
title = title?.replace("\n", "")
if (title!!.length < QuestionEditViewModel.QUESTION_TITLE_MIN_LENGTH) return false
val articleContent = HtmlUtils.stripHtml(content).length
if (articleContent < MIN_ARTICLE_TEXT_LENGTH) return false
if (articleContent > MAX_ARTICLE_TEXT_LENGTH) return false
return true
}
/**
* 根据问题标题获取相应标签(标签默认选中)
*/

View File

@ -14,6 +14,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import com.gh.base.fragment.BaseDialogFragment
import com.gh.base.fragment.BaseDialogWrapperFragment
import com.gh.base.fragment.BaseFragment
import com.gh.common.AppExecutor
@ -144,8 +145,9 @@ class ArticleTagsSelectFragment : BaseFragment<String>() {
}
}
dialog.setOnDismissListener {
Util_System_Keyboard.hideSoftKeyboard(activity)
this.view?.visibility = View.VISIBLE
requireActivity().currentFocus?.clearFocus()
(requireActivity() as ArticleEditActivity).controlAddLabelContainer()
}
dialog.setCancelable(false)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)

View File

@ -65,6 +65,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
private var mUploadImageCancelDialog: Dialog? = null
private var mKeyboardHeightProvider: KeyboardHeightProvider? = null
private lateinit var picAdapter: QuestionsEditPicAdapter
private lateinit var mMenuPost: MenuItem
private var mIsExtendedKeyboardShow = false
private var mOffset = 0
private var mTagsSelectFragment: TagsSelectFragment? = null
@ -102,6 +103,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
setToolbarMenu(R.menu.menu_question_post)
mToolbar.navigationIcon = null
mMenuPost = mToolbar.menu.findItem(R.id.menu_question_post)
mViewModel = ViewModelProviders.of(this).get(QuestionEditViewModel::class.java)
if (savedInstanceState != null) {
val cacheTitle = savedInstanceState.getString(mSaveTitleKey)
@ -113,6 +115,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
mViewModel.picList.value = cacheImage // can not be use postValue
}
}
checkPostButtonEnable()
mBinding = DataBindingUtil.bind(mContentView)!!
mBinding.questionseditTitle.setOnEditorActionListener { _, _, e -> e?.keyCode == KeyEvent.KEYCODE_ENTER; }
@ -180,12 +183,24 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
// TitleEdit
mBinding.questionseditTitle.addTextChangedListener(LimitTextWatcher(mBinding.questionseditTitle))
mBinding.questionseditTitle.filters = arrayOf(TextHelper.getFilter(50, "标题最多50个字"))
mBinding.questionseditTitle.addTextChangedListener {
checkPostButtonEnable()
}
mBinding.questionseditTitle.setOnTouchListener { v, event ->
closeExtendedKeyboard()
false
}
// ContentEdit
mBinding.questionseditContent.filters = arrayOf(TextHelper.getFilter(300, "内容最多300个字"))
mBinding.questionseditContent.addTextChangedListener {
mBinding.editorTextNumTv.text = "${mBinding.questionseditContent.text.length}/300"
}
mBinding.questionseditContent.setOnTouchListener { v, event ->
closeExtendedKeyboard()
false
}
// Pic List
picAdapter = QuestionsEditPicAdapter(this, mViewModel)
@ -354,20 +369,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
editorLink.visibility = View.GONE
addLabelContainer.visibility = View.VISIBLE
addLabelContainer.setOnClickListener {
val isShouldDelay = if (editorInsertDetailContainer.visibility == View.GONE) {
Util_System_Keyboard.hideSoftKeyboard(this@QuestionEditActivity)
changeAddLabel(true)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this@QuestionEditActivity)
changeAddLabel(false)
false
}
editorInsertDetailContainer.postDelayed({
editorInsertDetailContainer.visibility = if (editorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE
tagsContainer.visibility = if (editorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE
mIsExtendedKeyboardShow = editorInsertDetailContainer.visibility == View.VISIBLE
}, if (isShouldDelay) 50 else 0L)
controlInsertDetailContainer()
}
editorImage.setOnClickListener {
picAdapter.selectPic()
@ -387,6 +389,26 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
fun closeExtendedKeyboard() {
mBinding.editorInsertContainer.editorInsertDetailContainer.visibility = View.GONE
mIsExtendedKeyboardShow = false
changeAddLabel(false)
}
fun controlInsertDetailContainer(){
mBinding.editorInsertContainer.apply {
val isShouldDelay = if (editorInsertDetailContainer.visibility == View.GONE) {
Util_System_Keyboard.hideSoftKeyboard(this@QuestionEditActivity)
changeAddLabel(true)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this@QuestionEditActivity)
changeAddLabel(false)
false
}
editorInsertDetailContainer.postDelayed({
editorInsertDetailContainer.visibility = if (editorInsertDetailContainer.visibility == View.GONE) View.VISIBLE else View.GONE
tagsContainer.visibility = if (editorInsertDetailContainer.visibility == View.VISIBLE) View.VISIBLE else View.GONE
mIsExtendedKeyboardShow = editorInsertDetailContainer.visibility == View.VISIBLE
}, if (isShouldDelay) 50 else 0L)
}
}
override fun onMenuItemClick(menuItem: MenuItem?): Boolean {
@ -410,6 +432,11 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
return false
}
private fun checkPostButtonEnable() {
val isEnabled = mViewModel.checkData()
mMenuPost.actionView.alpha = if (isEnabled) 1f else 0.6f
}
override fun onDestroy() {
mProcessingDialog?.dismissAllowingStateLoss()
mProcessingDialog = null
@ -547,6 +574,7 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
beginTransaction.commitAllowingStateLoss()
mViewModel.selectedTags.clear()
mViewModel.selectedTagsChange.postValue(true)
checkPostButtonEnable()
}
override fun onResume() {
@ -561,14 +589,10 @@ class QuestionEditActivity : ToolBarActivity(), KeyboardHeightObserver {
override fun onKeyboardHeightChanged(height: Int, orientation: Int) {
// val params = mBinding.editorInsertContainer.root.layoutParams as RelativeLayout.LayoutParams
// if (height > 0) {
// params.bottomMargin = height + mOffset
// } else {
// params.bottomMargin = 0
// mOffset = abs(height)
// }
// mBinding.editorInsertContainer.root.layoutParams = params
if (height > 0) {
changeAddLabel(false)
closeExtendedKeyboard()
}
}
companion object {

View File

@ -104,7 +104,7 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica
* 检查标题是否符合规则
* 根据问题标题获取相应标签(问题编辑无需获取)
*/
fun checkTitleAndLoadTitleTag() :Boolean{
fun checkTitleAndLoadTitleTag(): Boolean {
if (TextUtils.isEmpty(communityEntity?.id) || TextUtils.isEmpty(communityEntity?.name)) {
Utils.toast(getApplication(), "论坛不能为空")
return false
@ -132,6 +132,16 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica
return true
}
fun checkData(): Boolean {
if (TextUtils.isEmpty(communityEntity?.id) || TextUtils.isEmpty(communityEntity?.name)) return false
if (TextUtils.isEmpty(title)) return false
// 检查标题长度限制
title?.trim()
if (title!!.length < QUESTION_TITLE_MIN_LENGTH) return false
return true
}
/**
* 根据问题标题获取相应标签(标签默认选中)
*/

View File

@ -267,8 +267,9 @@ class TagsSelectFragment : BaseFragment<String>() {
}
}
dialog.setOnDismissListener {
Util_System_Keyboard.hideSoftKeyboard(activity)
this.view?.visibility = View.VISIBLE
requireActivity().currentFocus?.clearFocus()
(requireActivity() as QuestionEditActivity).controlInsertDetailContainer()
}
dialog.setCancelable(false)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)

View File

@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.5dp"
android:width="1dp"
android:color="#1A1383EB" />
<corners android:radius="999dp" />
<solid android:color="#EAF5FF" />

View File

@ -4,6 +4,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<RelativeLayout
@ -60,6 +62,7 @@
android:hint="请输入标题"
android:paddingLeft="18dp"
android:paddingTop="17dp"
android:paddingRight="18dp"
android:paddingBottom="17dp"
android:textColorHint="@color/text_cccccc"
android:textCursorDrawable="@drawable/cursor_color"

View File

@ -13,6 +13,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<RelativeLayout
@ -134,7 +136,6 @@
android:id="@+id/suggest_pic_rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:overScrollMode="never"
android:paddingLeft="16dp"

View File

@ -222,7 +222,8 @@
android:id="@+id/editor_link_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal"
android:visibility="gone"
android:weightSum="4">

View File

@ -1,26 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id = "@+id/menu_answer_post"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_centerInParent = "true"
android:gravity = "center"
android:paddingRight="12dp"
android:paddingLeft="12dp"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:id="@+id/menu_answer_post"
android:layout_width="48dp"
android:layout_height="24dp"
android:layout_centerInParent="true"
android:background="@drawable/textview_concern_red_up_round"
android:textColor = "@color/white"
android:textSize = "12sp"
android:text = "@string/answer_post" />
android:gravity="center"
android:text="@string/answer_post"
android:textColor="@color/white"
android:textSize="12sp" />
<View
android:layout_width="16dp"
android:layout_height="1dp"
android:layout_gravity="center"/>
</LinearLayout >
android:layout_gravity="center" />
</LinearLayout>

View File

@ -63,7 +63,7 @@ ext {
leakcanary = '2.4'
// 大图查看
bigImageViewer = "1.6.5"
bigImageViewer = "1.7.0"
bugly = "2.6.6"
buglyTinkerSupport = "1.3.4"