我想在获取数据时在我的应用片段上显示临时旋转进度指示器。到目前为止,我已经让它工作得很好,但是当我希望在指标可见时让常规页面内容变灰时背景是纯黑色。我尝试过的是在我现有的布局上添加一个半透明黑色背景的全新全屏幕布局,但无论我尝试什么,我只能获得黑色背景。我还尝试了一个FrameLayout容器,但这只给出了100%透明的布局。
我甚至读过这篇文章,但它不起作用: Changing translucent background color of 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);
}
非常感谢任何帮助!
答案 0 :(得分:0)
我刚用FrameLayout作为父语来解决这个问题。之前我没有做的关键是将RelativeLayout将进度指示器LAST保存在树中,而不是第一个。布局并不完美,但我现在有了我想要的半透明效果。
<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>