pref: 优化键盘高度检测
This commit is contained in:
parent
562364a7a1
commit
41f033eec6
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue