【安卓情景实现】如何让一个控件在另一个控件上面?

方式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>

注意:实现层叠效果,推荐使用框架布局

猜你喜欢

转载自blog.csdn.net/u012995888/article/details/80189486
今日推荐