android - Android CoordinatorLayout 以编程方式触发 Hide-Bottom-on-Scroll 行为
问题描述
我的设置是这样的:
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<RadioButton
android:id="@+id/scroll_up_radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scroll Up" />
<RadioButton
android:id="@+id/scroll_down_radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scroll Down" />
</RadioGroup>
<TextView
android:id="@+id/bottom_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Botton TextView"
android:textColor="@color/black"
android:textSize="30sp"
android:gravity="center"
android:layout_gravity="bottom"
app:layout_behavior="com.google.android.material.behavior.HideBottomViewOnScrollBehavior"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
如何使用代码使底部像这样TextView
隐藏?我尝试了一些东西但没有奏效:
binding.scrollUpRadioButton.setOnCheckedChangeListener { compoundButton, isChecked ->
if (isChecked) {
val params = binding.bottomTextView.layoutParams as CoordinatorLayout.LayoutParams
params.behavior = AppBarLayout.ScrollingViewBehavior()
binding.bottomTextView.requestLayout()
}
}
解决方案
具有以下HideBottomViewOnScrollBehavior
公共方法以编程方式隐藏或显示视图:
public void slideDown (V child) - 执行一个动画,将孩子从当前位置滑动到完全离开屏幕。
和
public void slideUp (V child) - 执行一个动画,将孩子从当前位置滑动到完全在屏幕上。
因此,根据您的示例,您可以使用以下帮助程序以编程方式显示/隐藏底部 TextView:
private fun showBottomTextView(bottomTextView: TextView){
val params = bottomTextView.layoutParams as CoordinatorLayout.LayoutParams
val behavior = params.behavior as HideBottomViewOnScrollBehavior
behavior.slideUp(bottomTextView)
}
private fun hideBottomTextView(bottomTextView: TextView){
val params = bottomTextView.layoutParams as CoordinatorLayout.LayoutParams
val behavior = params.behavior as HideBottomViewOnScrollBehavior
behavior.slideDown(bottomTextView)
}
推荐阅读
- facebook - 我如何知道在 woocomerce 中我的采购订单是从哪个 facebook 活动生成的?
- bert-language-model - (Normalize () argument 2 must be str,not int)error while running BERT API
- json - Snowpipe:将 base64 编码的 JSON 加载到表中
- javascript - 如何在一页上创建多个自定义输入文件
- python - Python Regex - 在模式之间选择文本
- apache - 如何在 Apache 服务器的 .htaccess 中以 / 结尾更改所有路由(url)?
- python - 我如何知道是否使用 python-telegram-bot 删除了一条消息?
- angular - scripts.js 文件大小随着角度延迟加载而增加
- ios - 无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)
- python - 不正确的测试但不确定我的代码有什么问题?