对不起,英语不好
我有AppBarLayout,Webview和BottomNavigationView。
我想通过单击显示/隐藏AppBarLayout和BottomNavigationView。
char s[10] = ""; /* initialize all array elements with 0 */
我的自定义BottomNavigationBehavior,但逻辑不好
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar_chT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_chT"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title=""/>
</com.google.android.material.appbar.AppBarLayout>
<WebView
android:id="@+id/textWebview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hardwareAccelerated="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/button_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/webViewBackground"
app:layout_behavior="BottomNavigationBehavior"
app:menu="@menu/chapter_bottom"/>
<ProgressBar
android:id="@+id/webViewProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
对于webview,我有下一个代码
class BottomNavigationBehavior<V : View>(context: Context, attrs: AttributeSet) :
CoordinatorLayout.Behavior<V>(context, attrs) {
override fun layoutDependsOn(parent: CoordinatorLayout, child: V, dependency: View): Boolean {
if (dependency is Snackbar.SnackbarLayout) {
updateSnackbar(child, dependency)
}
if (dependency is WebView) {
updateWebView(child, dependency)
}
return super.layoutDependsOn(parent, child, dependency)
}
private fun updateSnackbar(child: View, snackbarLayout: Snackbar.SnackbarLayout) {
if (snackbarLayout.layoutParams is CoordinatorLayout.LayoutParams) {
val params = snackbarLayout.layoutParams as CoordinatorLayout.LayoutParams
params.anchorId = child.id
params.anchorGravity = Gravity.TOP
params.gravity = Gravity.TOP
snackbarLayout.layoutParams = params
}
}
private fun updateWebView(child: View, webview: WebView) {
}
}
所以,一切正常,但是我的问题是我无法在“酒吧展示”模式下在WebView中看到全文
如上图所示,我看不到19和20字符串,因为它们在底部栏中(我无法再向下滚动webView)
您能给我一些建议吗,或者还有另一种方法来实现这种功能?
谢谢
答案 0 :(得分:0)
我将根布局更改为ConstraintLayout并使用
android:animateLayoutChanges="true"
使用
visibility = View.GONE //or
visibility = View.VISIBLE