方式1
这两个控件放在RelativeLayout相对布局中,哪个控件放在上面,哪个控件的View实例就调用bringToFront()
方法,示例如下:
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView android:id="@+id/wv_homepage"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ProgressBar
android:id="@+id/pb_load_progress"
style="@android:style/Widget.Material.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="0dp"
android:padding="0dp"
android:progress="0" />
</RelativeLayout>
方法调用:
private lateinit var wvHomepage:WebView
private lateinit var pbLoadProgress:ProgressBar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_goweb)
//获取控件
wvHomepage = findViewById(R.id.wv_homepage)
pbLoadProgress = findViewById(R.id.pb_load_progress)
//进度条控件放在WebView上面
pbLoadProgress.bringToFront()
}
方式2
使用FrameLayout框架布局,下一个视图会层叠在上一个视图的上面,类似堆栈。
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="200dp"
android:layout_height="150dp"
android:background="#f00"/>
<TextView
android:layout_width="200dp"
android:layout_height="150dp"
android:background="#00f"
android:layout_marginLeft="100dp"
android:layout_marginTop="30dp"/>
</FrameLayout>
注意:实现层叠效果,推荐使用框架布局