我有一个LinearLayout
,其中包含许多视图(Button
和TextView
),并且我希望使其内部的每个视图都无法单击,直到我处理服务器请求为止。我该怎么办?
答案 0 :(得分:0)
您可以尝试
myView.setEnabled(false);
或
myView.setClickable(false); myView.setFocusable(false);
基本上enabled false
不响应任何响应,而clickable false
仍在运行时进行响应。
答案 1 :(得分:0)
您可以将LinearLayout放置在Relative中,然后在clickable = true处在线性上方添加另一个Relative。
我建议您还添加一个进度栏,也许还添加一些背景不透明度,以便用户知道其加载情况。 因此,当您等待请求时,将包含进度条可见性的亲戚设置为可见,完成后将其设置为消失。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-Add your elements-->
</LinearLayout>
<RelativeLayout
android:id="@+id/progress_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/semi_gray"
android:clickable="true"
android:visibility="gone">
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="@dimen/spacing_mid_large"
android:layout_height="@dimen/spacing_mid_large"
android:layout_centerInParent="true"
android:indeterminate="true"
android:visibility="visible" />
</RelativeLayout>
</RelativeLayout>