pref: 优化键盘高度检测

This commit is contained in:
HuanCheng65 2023-01-07 18:36:26 +08:00
parent 562364a7a1
commit 41f033eec6
No known key found for this signature in database
GPG Key ID: E9031EF91A805148
9 changed files with 261 additions and 228 deletions

View File

@ -227,7 +227,7 @@ dependencies {
implementation "com.squareup.retrofit2:converter-wire:$retrofit_version" implementation "com.squareup.retrofit2:converter-wire:$retrofit_version"
implementation 'com.google.code.gson:gson:2.10' implementation 'com.google.code.gson:gson:2.10'
implementation "cn.dreamtobe.kpswitch:library:1.6.2" implementation 'com.github.DSAppTeam:PanelSwitchHelper:v1.5.2'
implementation "org.litepal.android:kotlin:3.0.0" implementation "org.litepal.android:kotlin:3.0.0"
implementation 'cn.jzvd:jiaozivideoplayer:7.7.2.3300' implementation 'cn.jzvd:jiaozivideoplayer:7.7.2.3300'
implementation "com.jrummyapps:colorpicker:2.1.7" implementation "com.jrummyapps:colorpicker:2.1.7"

View File

@ -301,6 +301,7 @@
<activity <activity
android:name=".activities.ReplyActivity" android:name=".activities.ReplyActivity"
android:configChanges="screenSize|screenLayout|orientation|smallestScreenSize|keyboardHidden" android:configChanges="screenSize|screenLayout|orientation|smallestScreenSize|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
android:theme="@style/AppTheme.Floating" /> android:theme="@style/AppTheme.Floating" />
<activity <activity
android:name=".activities.BlockListActivity" android:name=".activities.BlockListActivity"

View File

@ -13,9 +13,10 @@ import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView import butterknife.BindView
import cn.dreamtobe.kpswitch.util.KeyboardUtil
import com.alibaba.android.vlayout.DelegateAdapter import com.alibaba.android.vlayout.DelegateAdapter
import com.alibaba.android.vlayout.VirtualLayoutManager import com.alibaba.android.vlayout.VirtualLayoutManager
import com.effective.android.panel.utils.hideSoftInput
import com.effective.android.panel.utils.showSoftInput
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.R
@ -118,7 +119,7 @@ class NewSearchActivity : BaseActivity(), TabLayout.OnTabSelectedListener {
editText.setOnEditorActionListener { v, actionId, _ -> editText.setOnEditorActionListener { v, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH) { if (actionId == EditorInfo.IME_ACTION_SEARCH) {
keyword = v.text.toString() keyword = v.text.toString()
if (!keyword.isNullOrBlank()) KeyboardUtil.hideKeyboard(v) if (!keyword.isNullOrBlank()) hideSoftInput()
return@setOnEditorActionListener true return@setOnEditorActionListener true
} }
return@setOnEditorActionListener false return@setOnEditorActionListener false
@ -129,7 +130,7 @@ class NewSearchActivity : BaseActivity(), TabLayout.OnTabSelectedListener {
keyword = intent.getStringExtra(EXTRA_KEYWORD) keyword = intent.getStringExtra(EXTRA_KEYWORD)
editText.post { editText.post {
if (keyword.isNullOrBlank()) { if (keyword.isNullOrBlank()) {
KeyboardUtil.showKeyboard(editText) editText.showSoftInput()
} }
} }
} }
@ -189,7 +190,7 @@ class NewSearchActivity : BaseActivity(), TabLayout.OnTabSelectedListener {
if (state == State.SEARCH) { if (state == State.SEARCH) {
state = State.INPUT state = State.INPUT
invalidateState() invalidateState()
KeyboardUtil.showKeyboard(editText) editText.showSoftInput()
} else { } else {
finish() finish()
} }
@ -238,7 +239,7 @@ class NewSearchActivity : BaseActivity(), TabLayout.OnTabSelectedListener {
editText.apply { editText.apply {
setText(item.content) setText(item.content)
clearFocus() clearFocus()
KeyboardUtil.hideKeyboard(this) hideSoftInput()
} }
keyword = item.content keyword = item.content
} }

View File

@ -19,7 +19,6 @@ import android.view.ViewGroup
import android.webkit.WebView import android.webkit.WebView
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.GridView import android.widget.GridView
import android.widget.RelativeLayout
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
@ -28,10 +27,9 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import butterknife.BindView import butterknife.BindView
import cn.dreamtobe.kpswitch.util.KPSwitchConflictUtil import com.effective.android.panel.PanelSwitchHelper
import cn.dreamtobe.kpswitch.util.KPSwitchConflictUtil.SubPanelAndTrigger import com.effective.android.panel.utils.hideSoftInput
import cn.dreamtobe.kpswitch.util.KeyboardUtil import com.effective.android.panel.view.panel.PanelView
import cn.dreamtobe.kpswitch.widget.KPSwitchFSPanelFrameLayout
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.R
import com.huanchengfly.tieba.post.adapters.InsertPhotoAdapter import com.huanchengfly.tieba.post.adapters.InsertPhotoAdapter
@ -49,24 +47,27 @@ import com.huanchengfly.tieba.post.models.ReplyInfoBean
import com.huanchengfly.tieba.post.models.database.Draft import com.huanchengfly.tieba.post.models.database.Draft
import com.huanchengfly.tieba.post.toastShort import com.huanchengfly.tieba.post.toastShort
import com.huanchengfly.tieba.post.ui.widgets.edittext.widget.UndoableEditText import com.huanchengfly.tieba.post.ui.widgets.edittext.widget.UndoableEditText
import com.huanchengfly.tieba.post.ui.widgets.theme.TintConstraintLayout
import com.huanchengfly.tieba.post.ui.widgets.theme.TintImageView import com.huanchengfly.tieba.post.ui.widgets.theme.TintImageView
import com.huanchengfly.tieba.post.ui.widgets.theme.TintLinearLayout
import com.huanchengfly.tieba.post.utils.* import com.huanchengfly.tieba.post.utils.*
import org.litepal.LitePal.where import org.litepal.LitePal.where
class ReplyActivity : BaseActivity(), View.OnClickListener, class ReplyActivity : BaseActivity(), View.OnClickListener,
InsertPhotoAdapter.PickMediasLauncherProvider { InsertPhotoAdapter.PickMediasLauncherProvider {
@BindView(R.id.activity_reply_edit_text) private var mHelper: PanelSwitchHelper? = null
@BindView(R.id.edit_text)
lateinit var editText: UndoableEditText lateinit var editText: UndoableEditText
@BindView(R.id.activity_reply_panel_root) @BindView(R.id.activity_reply_layout)
lateinit var panelFrameLayout: KPSwitchFSPanelFrameLayout lateinit var rootLayout: TintLinearLayout
@BindView(R.id.activity_reply_emoticon) @BindView(R.id.activity_reply_emoticon)
lateinit var emoticonView: RelativeLayout lateinit var emoticonView: PanelView
@BindView(R.id.activity_reply_insert_photo) @BindView(R.id.activity_reply_insert_photo)
lateinit var insertImageView: FrameLayout lateinit var insertImageView: PanelView
@BindView(R.id.activity_reply_edit_emoticon) @BindView(R.id.activity_reply_edit_emoticon)
lateinit var emoticonBtn: TintImageView lateinit var emoticonBtn: TintImageView
@ -106,30 +107,15 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
insertPhotoAdapter.setFileList(photoInfoBeans) insertPhotoAdapter.setFileList(photoInfoBeans)
} }
override fun getPickMediasLauncher(): ActivityResultLauncher<PickMediasRequest> = override fun onStart() {
pickMediasLauncher super.onStart()
if (mHelper == null) {
mHelper = PanelSwitchHelper.Builder(this)
.logTrack(true)
.build(false)
override fun getLayoutId(): Int { if (appPreferences.postOrReplyWarning) {
return R.layout.activity_reply showDialog {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (ThemeUtil.THEME_TRANSLUCENT == ThemeUtil.getTheme()) {
val constraintLayout = findViewById<TintConstraintLayout>(R.id.activity_reply_layout)
constraintLayout.setBackgroundTintResId(0)
ThemeUtil.setTranslucentBackground(constraintLayout)
}
Util.setStatusBarTransparent(this)
val decor = window.decorView as ViewGroup
val decorChild = decor.getChildAt(0) as ViewGroup
decorChild.setBackgroundColor(Color.TRANSPARENT)
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
window.decorView.setBackgroundColor(Color.TRANSPARENT)
window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
initData()
initView()
if (appPreferences.postOrReplyWarning) showDialog {
setTitle(R.string.title_dialog_reply_warning) setTitle(R.string.title_dialog_reply_warning)
setMessage(R.string.message_dialog_reply_warning) setMessage(R.string.message_dialog_reply_warning)
setNegativeButton(R.string.btn_cancel_reply) { _, _ -> setNegativeButton(R.string.btn_cancel_reply) { _, _ ->
@ -139,7 +125,10 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
setPositiveButton(R.string.button_official_client_reply) { _, _ -> setPositiveButton(R.string.button_official_client_reply) { _, _ ->
val intent = Intent(ACTION_VIEW).setData(getDispatchUri()) val intent = Intent(ACTION_VIEW).setData(getDispatchUri())
val resolveInfos = val resolveInfos =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY) packageManager.queryIntentActivities(
intent,
PackageManager.MATCH_DEFAULT_ONLY
)
.filter { it.resolvePackageName != packageName } .filter { it.resolvePackageName != packageName }
try { try {
if (resolveInfos.isNotEmpty()) { if (resolveInfos.isNotEmpty()) {
@ -154,6 +143,39 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
} }
} }
} }
}
}
override fun onBackPressed() {
if (mHelper?.hookSystemBackByPanelSwitcher() == true) {
return
}
super.onBackPressed()
}
override fun getPickMediasLauncher(): ActivityResultLauncher<PickMediasRequest> =
pickMediasLauncher
override fun getLayoutId(): Int {
return R.layout.activity_reply
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (ThemeUtil.isTranslucentTheme()) {
rootLayout.setBackgroundTintResId(0)
ThemeUtil.setTranslucentBackground(rootLayout)
}
Util.setStatusBarTransparent(this)
val decor = window.decorView as ViewGroup
val decorChild = decor.getChildAt(0) as ViewGroup
decorChild.setBackgroundColor(Color.TRANSPARENT)
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
window.decorView.setBackgroundColor(Color.TRANSPARENT)
window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
initData()
initView()
}
private fun getDispatchUri(): Uri? { private fun getDispatchUri(): Uri? {
if (replyInfoBean == null) { if (replyInfoBean == null) {
@ -184,7 +206,6 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
panelFrameLayout.recordKeyboardStatus(window)
if (replyInfoBean != null && !replySuccess) { if (replyInfoBean != null && !replySuccess) {
Draft( Draft(
replyInfoBean!!.hash(), replyInfoBean!!.hash(),
@ -282,8 +303,9 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
} }
}) })
mItemTouchHelper.attachToRecyclerView(insertView) mItemTouchHelper.attachToRecyclerView(insertView)
findViewById<View>(R.id.activity_reply_root).setOnClickListener(this) findViewById<View>(R.id.content_view).setOnClickListener(this)
findViewById<View>(R.id.activity_reply_layout).setOnClickListener(this) findViewById<View>(R.id.panel_container).setOnClickListener(this)
rootLayout.setOnClickListener(this)
toolbar.setNavigationIcon(R.drawable.ic_reply_toolbar_round_close) toolbar.setNavigationIcon(R.drawable.ic_reply_toolbar_round_close)
if (replyInfoBean!!.pid == null && replyInfoBean!!.floorNum == null) { if (replyInfoBean!!.pid == null && replyInfoBean!!.floorNum == null) {
insertImageBtn.visibility = View.VISIBLE insertImageBtn.visibility = View.VISIBLE
@ -452,13 +474,6 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
if (sendItem != null) sendItem!!.isEnabled = canSend() if (sendItem != null) sendItem!!.isEnabled = canSend()
} }
}) })
KeyboardUtil.attach(this, panelFrameLayout)
KPSwitchConflictUtil.attach(
panelFrameLayout,
editText,
SubPanelAndTrigger(emoticonView, emoticonBtn),
SubPanelAndTrigger(insertImageView, insertImageBtn)
)
EmoticonUtil.GlobalOnItemClickManagerUtil.attachToEditText(editText) EmoticonUtil.GlobalOnItemClickManagerUtil.attachToEditText(editText)
} }
@ -576,8 +591,8 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
finish() finish()
}.doIfFailure { }.doIfFailure {
if (loadingDialog != null) loadingDialog!!.cancel() if (loadingDialog != null) loadingDialog!!.cancel()
KeyboardUtil.hideKeyboard(panelFrameLayout) hideSoftInput()
showErrorSnackBar(panelFrameLayout, it) showErrorSnackBar(rootLayout, it)
} }
} }
} }
@ -600,7 +615,7 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
override fun onClick(v: View) { override fun onClick(v: View) {
when (v.id) { when (v.id) {
R.id.activity_reply_root -> finish() R.id.content_view -> finish()
R.id.activity_reply_edit_undo -> editText.undo() R.id.activity_reply_edit_undo -> editText.undo()
R.id.activity_reply_edit_redo -> editText.redo() R.id.activity_reply_edit_redo -> editText.redo()
R.id.activity_reply_edit_clear -> editText.setText(null) R.id.activity_reply_edit_clear -> editText.setText(null)

View File

@ -14,7 +14,8 @@ import androidx.appcompat.widget.ListPopupWindow
import androidx.core.widget.TextViewCompat import androidx.core.widget.TextViewCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView import butterknife.BindView
import cn.dreamtobe.kpswitch.util.KeyboardUtil import com.effective.android.panel.utils.hideSoftInput
import com.effective.android.panel.utils.showSoftInput
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.R
import com.huanchengfly.tieba.post.adapters.SearchPostAdapter import com.huanchengfly.tieba.post.adapters.SearchPostAdapter
@ -124,7 +125,7 @@ class SearchPostActivity : BaseActivity() {
editText.setText(keyword) editText.setText(keyword)
} }
editText.post { editText.post {
KeyboardUtil.showKeyboard(editText) editText.showSoftInput()
} }
} }
@ -167,7 +168,7 @@ class SearchPostActivity : BaseActivity() {
override fun onBackPressed() { override fun onBackPressed() {
if (state == State.SEARCH) { if (state == State.SEARCH) {
state = State.INPUT state = State.INPUT
KeyboardUtil.showKeyboard(editText) editText.showSoftInput()
} else { } else {
finish() finish()
} }
@ -336,7 +337,7 @@ class SearchPostActivity : BaseActivity() {
editText.apply { editText.apply {
setText(item.content) setText(item.content)
clearFocus() clearFocus()
KeyboardUtil.hideKeyboard(this) hideSoftInput()
} }
keyword = item.content keyword = item.content
} }

View File

@ -14,12 +14,27 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
<com.huanchengfly.tieba.post.ui.widgets.theme.TintConstraintLayout <com.effective.android.panel.view.PanelSwitchLayout
android:id="@+id/panel_switch_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:animationSpeed="standard">
<com.effective.android.panel.view.content.FrameContentContainer
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:edit_view="@id/edit_text">
<com.huanchengfly.tieba.post.ui.widgets.theme.TintLinearLayout
android:id="@+id/activity_reply_layout" android:id="@+id/activity_reply_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="@drawable/bg_round" android:background="@drawable/bg_round"
android:orientation="vertical"
app:backgroundTint="@color/default_color_background"> app:backgroundTint="@color/default_color_background">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
@ -45,7 +60,7 @@
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<com.huanchengfly.tieba.post.ui.widgets.theme.TintUndoableEditText <com.huanchengfly.tieba.post.ui.widgets.theme.TintUndoableEditText
android:id="@+id/activity_reply_edit_text" android:id="@+id/edit_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/transparent" android:background="@color/transparent"
@ -57,10 +72,6 @@
android:padding="12dp" android:padding="12dp"
android:textSize="14sp" android:textSize="14sp"
app:hintTextColor="@color/default_color_text_secondary" app:hintTextColor="@color/default_color_text_secondary"
app:layout_constraintBottom_toTopOf="@+id/activity_reply_btn_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appbar"
app:textColor="@color/default_color_text" app:textColor="@color/default_color_text"
tools:ignore="UnusedAttribute"> tools:ignore="UnusedAttribute">
@ -74,14 +85,7 @@
android:layout_height="48dp" android:layout_height="48dp"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="8dp" android:padding="8dp"
android:weightSum="8" android:weightSum="8">
app:layout_constraintBottom_toTopOf="@+id/activity_reply_panel_root"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activity_reply_edit_text"
app:layout_constraintVertical_bias="1.0"
app:layout_constraintVertical_chainStyle="packed">
<com.huanchengfly.tieba.post.ui.widgets.theme.TintImageView <com.huanchengfly.tieba.post.ui.widgets.theme.TintImageView
android:id="@+id/activity_reply_edit_emoticon" android:id="@+id/activity_reply_edit_emoticon"
@ -147,49 +151,27 @@
app:tint="@color/text_color_selector" /> app:tint="@color/text_color_selector" />
</LinearLayout> </LinearLayout>
</com.huanchengfly.tieba.post.ui.widgets.theme.TintLinearLayout>
</com.effective.android.panel.view.content.FrameContentContainer>
<cn.dreamtobe.kpswitch.widget.KPSwitchFSPanelFrameLayout <com.effective.android.panel.view.panel.PanelContainer
android:id="@+id/activity_reply_panel_root" android:id="@+id/panel_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activity_reply_btn_bar"
app:layout_constraintVertical_bias="1.0">
<RelativeLayout <com.effective.android.panel.view.panel.PanelView
android:id="@+id/activity_reply_emoticon" android:id="@+id/activity_reply_emoticon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager
android:id="@+id/activity_reply_emoticon_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/activity_reply_emoticon_tab"
android:layout_alignParentTop="true" />
<com.huanchengfly.tieba.post.ui.widgets.theme.TintTabLayout
android:id="@+id/activity_reply_emoticon_tab"
style="@style/Widget.TabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" /> app:panel_layout="@layout/layout_panel_emoticon"
app:panel_trigger="@id/activity_reply_edit_emoticon" />
</RelativeLayout> <com.effective.android.panel.view.panel.PanelView
<FrameLayout
android:id="@+id/activity_reply_insert_photo" android:id="@+id/activity_reply_insert_photo"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="wrap_content"
app:panel_layout="@layout/layout_panel_photo"
<androidx.recyclerview.widget.RecyclerView app:panel_trigger="@id/activity_reply_edit_insert_photo" />
android:id="@+id/activity_reply_insert_photo_view" </com.effective.android.panel.view.panel.PanelContainer>
android:layout_width="match_parent" </com.effective.android.panel.view.PanelSwitchLayout>
android:layout_height="match_parent" />
</FrameLayout>
</cn.dreamtobe.kpswitch.widget.KPSwitchFSPanelFrameLayout>
</com.huanchengfly.tieba.post.ui.widgets.theme.TintConstraintLayout>
</FrameLayout> </FrameLayout>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<com.huanchengfly.tieba.post.ui.widgets.theme.TintRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/default_color_background">
<androidx.viewpager.widget.ViewPager
android:id="@+id/activity_reply_emoticon_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/activity_reply_emoticon_tab"
android:layout_alignParentTop="true" />
<com.huanchengfly.tieba.post.ui.widgets.theme.TintTabLayout
android:id="@+id/activity_reply_emoticon_tab"
style="@style/Widget.TabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</com.huanchengfly.tieba.post.ui.widgets.theme.TintRelativeLayout>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<com.huanchengfly.tieba.post.ui.widgets.theme.TintFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:backgroundTint="@color/default_color_background">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/activity_reply_insert_photo_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.huanchengfly.tieba.post.ui.widgets.theme.TintFrameLayout>

View File

@ -9,4 +9,4 @@ org.gradle.caching=true
org.gradle.configureondemand=true org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2g -XX:+UseParallelGC -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx2g -XX:+UseParallelGC -Dfile.encoding=UTF-8
org.gradle.parallel=true org.gradle.parallel=true
#org.gradle.unsafe.configuration-cache=true org.gradle.unsafe.configuration-cache=true