如何获得进度条的半透明布局



获取数据时,我想在应用程序的一个片段上显示一个临时的旋转进度指示器。到目前为止,我已经让它工作得很好,但当我想让常规页面内容在指示器可见时变灰时,背景是纯黑色的。我尝试在现有布局的基础上添加一个半透明黑色背景的新全屏布局,但无论我尝试什么,我都只能得到黑色背景。我也尝试过FrameLayout容器,但它只提供了100%透明的布局。

我甚至读过这篇文章,但它就是不起作用:更改progressbar android 的半透明背景色

片段xml布局文件的代码:(表是动态填充的)

<LinearLayout 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"
              android:paddingLeft="@dimen/activity_horizontal_margin"
              android:paddingRight="@dimen/activity_horizontal_margin"
              android:paddingTop="@dimen/activity_vertical_margin"
              android:paddingBottom="@dimen/activity_vertical_margin"
              tools:context="com.ericbatemandev.lemanskarting.view.League"
              android:background="#000"
              android:orientation="vertical">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/pageLoading"
        android:background="@color/transparent">
        <ProgressBar
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"/>
    </RelativeLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="64dp"
        android:gravity="center_vertical"
        android:layout_marginBottom="10dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Pro Enduro League Standings"
            android:id="@+id/leaguePageTitle"
            android:layout_gravity="center"
            android:padding="10dp"
            android:textSize="18sp"
            android:textColor="#fff"
            android:background="@drawable/page_title_background"
            android:textStyle="bold"/>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scrollView">
            <TableLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/leagueResultsTable">
                <TableRow
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
                    <TextView
                        android:layout_width="80dp"
                        android:layout_height="wrap_content"
                        android:text="Standing"
                        android:id="@+id/standingLabel"
                        android:textStyle="bold"
                        android:textSize="16sp"
                        android:textColor="#fff"/>
                    <TextView
                        android:layout_width="200dp"
                        android:layout_height="wrap_content"
                        android:text="Team Name"
                        android:id="@+id/teamNameLabel"
                        android:textColor="#fff"
                        android:textSize="16sp"
                        android:textStyle="bold"/>
                    <TextView
                        android:layout_width="55dp"
                        android:layout_height="wrap_content"
                        android:text="Points"
                        android:id="@+id/pointsLabel"
                        android:textStyle="bold"
                        android:textSize="16sp"
                        android:textColor="#fff"/>
                </TableRow>
            </TableLayout>
        </ScrollView>
    </LinearLayout>
</LinearLayout>

colors.xml 中的颜色

    <color name="transparent">#80000000</color>

我把我片段中的布局称为:

    public void showLoadingIndicator() {
        RelativeLayout pageLoading = (RelativeLayout)llLayout.findViewById(R.id.pageLoading);
        pageLoading.setVisibility(View.VISIBLE);
    }
    public void hideLoadingIndicator() {
        RelativeLayout pageLoading = (RelativeLayout)llLayout.findViewById(R.id.pageLoading);
        pageLoading.setVisibility(View.GONE);
    }

非常感谢您的帮助!

我刚刚使用FrameLayout作为父级解决了这个问题。我以前没有做的关键事情是把RelativeLayout放在树中的最后一个,而不是第一个。布局并不完美,但我现在有了我想要的半透明效果。

<FrameLayout 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"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          android:paddingBottom="@dimen/activity_vertical_margin"
          tools:context="com.ericbatemandev.lemanskarting.view.League"
          android:background="#000"
          android:orientation="vertical">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="64dp"
    android:gravity="center_vertical"
    android:layout_marginBottom="10dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pro Enduro League Standings"
        android:id="@+id/leaguePageTitle"
        android:layout_gravity="center"
        android:padding="10dp"
        android:textSize="18sp"
        android:textColor="#fff"
        android:background="@drawable/page_title_background"
        android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView">
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/leagueResultsTable">
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
                <TextView
                    android:layout_width="80dp"
                    android:layout_height="wrap_content"
                    android:text="Standing"
                    android:id="@+id/standingLabel"
                    android:textStyle="bold"
                    android:textSize="16sp"
                    android:textColor="#fff"/>
                <TextView
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:text="Team Name"
                    android:id="@+id/teamNameLabel"
                    android:textColor="#fff"
                    android:textSize="16sp"
                    android:textStyle="bold"/>
                <TextView
                    android:layout_width="55dp"
                    android:layout_height="wrap_content"
                    android:text="Points"
                    android:id="@+id/pointsLabel"
                    android:textStyle="bold"
                    android:textSize="16sp"
                    android:textColor="#fff"/>
            </TableRow>
        </TableLayout>
    </ScrollView>
</LinearLayout>
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/pageLoading"
    android:background="@color/transparent">
    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar4"
        android:layout_gravity="center_horizontal"
        android:layout_centerInParent="true"
        android:background="#00000000"/>
</RelativeLayout>

最新更新