在视图上,我有一个 LinearLayout,当我单击下面的 EditText 时,我想折叠它,然后在我们取消焦点时展开它。
<EditText
android:layout_width="1000dp"
android:layout_height="43dp"
android:layout_centerVertical="true"
android:textSize="14.4sp"
android:gravity="center_vertical"
android:hint="@string/hint_query"
android:layout_toEndOf="@+id/searchImage"
android:id="@+id/searchBoxText"
android:background="@null"
android:layout_marginStart="16dp"
android:inputType="text"
tools:ignore="Autofill" />
Run Code Online (Sandbox Code Playgroud)
感谢 Android-Annotations,我实现了一个 onFocusChangeListener。
@FocusChange
void searchBoxText(EditText searchBoxText) {
Log.d("change focus", "focus has changed with " + searchBoxText.hasFocus());
if (!searchBoxText.hasFocus()) {
if(upperView != null)
upperView.setVisibility(View.VISIBLE);
} else {
if(upperView != null)
upperView.setVisibility(View.GONE);
}
}
Run Code Online (Sandbox Code Playgroud)
我在父级上有一个 touchListener ,它抛出:
searchBoxText.clearFocus();
Run Code Online (Sandbox Code Playgroud)
当我们点击 EditText 之外的时候。
平板电脑我的目标是将此代码支持为最大 API 24。我的问题是此代码在 API 28 中完美运行,但在 API 24 上运行不佳,它会抛出 onFocusChange 两次,而且我没有找到任何原因来说明为什么这样做或任何让它发挥作用的方法。
我在我的 android 应用程序中使用 google docs pdf 嵌入式查看器来显示我的 pdf。有时查看器不会加载我的文件,即使大部分时间它会加载,并且当它不加载时它是非常随机的。
我使用“ https://docs.google.com/viewer?embedded=true&url= ” + myUrl生成网址。
之后我加载 webview :
showLoader()
web_view.settings.javaScriptEnabled = true
web_view.clearCache(true)
web_view.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
hideLoader()
}
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
web_view.loadUrl(url)
return true
}
override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {
println("before handler")
handler.proceed()
println("after handler")
}
}
web_view.loadUrl(url)
Run Code Online (Sandbox Code Playgroud)
如果遇到任何 sslError,我尝试继续以覆盖 urlLoading,但这都没有解决我的问题。
要在这里测试的是并不总是加载的网址之一:
http://docdif.fr.grpleg.com/general/MEDIAGRP/NP-FT-GT/LE10061AA.pdf
我也尝试过的一件事是在我的应用程序上显示时显示 url,当它没有加载到我的查看器上时,它也会在我的导航器上阻塞。但如果我重新加载页面,它会收费。
知道错误可能是什么吗?