定位按钮后面的进度条(Positioning a progress bar behind a but

2019-06-24 16:28发布

我有一个Button是一个定义RelativeLayout如下:

<Button
        android:id="@+id/search_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/current_location"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:paddingBottom="30dp"
        android:paddingTop="30dp"
        android:text="@string/search" />

我想补充一点,占据完全相同的空间按钮,这样,当按钮被禁用(半透明),你可以看到它背后的进度栏按钮后面的进度。 我会怎么做呢?

Answer 1:

要做到这一点,我在我的定义按钮main.xml第一,其次是进度条,如下所示:

<Button
    android:id="@+id/search_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/current_location"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:paddingBottom="30dp"
    android:paddingTop="30dp"
    android:text="@string/search" />

<ProgressBar
    android:id="@+id/cooldown_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/search_button"
    android:layout_below="@id/current_location"
    android:layout_marginBottom="6dp"
    android:layout_marginLeft="9dp"
    android:layout_marginRight="9dp"
    android:layout_marginTop="1dp"
    android:indeterminate="false"
    android:progressDrawable="@drawable/progress_bar" />

然后,一旦我已经初始化所有的GUI组件,我不得不把按钮早在进度条与前面:

searchButton.bringToFront();

最终的结果

按钮时启用:

当进度条关闭按钮:



Answer 2:

把这个权在你的XML相对布局内的按钮之前:

    <ProgressBar
    android:id="@+id/descriptive_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/current_location"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:paddingBottom="30dp"
    android:paddingTop="30dp"
     />

通过使用所有相同layotu和padding属性我们可以确保画面将会在同一地点和大致相同的尺寸(高度可能因为WRAP_CONTENT的是不同的),我想,如果你第一次把进度条的布局文件,然后按钮应该出现在上面。

但是你也可以强制你想要的任何政策view.setVisibility(visibility-ness)只要确保当你做出一个可见的,你让对方看不到的。

在情况下,我错了他们是如何堆叠在默认情况下根据他们在文件中的位置这种方式(我可以,我没有刚才验证),并在事件中,你不想动进度条与波纹管文件中的按钮,你仍然可以实现从用户角度来看,同样的事情。



文章来源: Positioning a progress bar behind a button