以下是我的布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<LinearLayout
android:id="@+id/progress_layout"
android:visibility="gone"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/horizontal_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminateOnly="false"
android:max="10000"
android:maxHeight="15dip"
android:minHeight="10dip" />
</LinearLayout>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Add content here -->
<RelativeLayout
android:id="@+id/content_fragments_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"></RelativeLayout>
</FrameLayout>
<ListView
android:id="@+id/menu_items_list"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
默认情况下,progress_layout可见性为GONE。每当用户点击菜单项时,我想在(覆盖)现有片段的顶部显示进度条并开始后台操作。要显示此布局,我请调用以下方法:
public void showProgress(int progress){
LinearLayout progressLayout = (LinearLayout) findViewById(R.id.progress_layout);
ProgressBar progressBar = (ProgressBar) findViewById(R.id.horizontal_progress_bar);
progressBar.setProgress(progress);
progressLayout.bringToFront();
progressLayout.setVisibility(View.VISIBLE);
LinearLayout dashboardLayout = (LinearLayout) findViewById(R.id.activity_layout);
dashboardLayout.requestLayout();
dashboardLayout.invalidate();
}
但我仍然没有在我的片段上看到我的进度条。
请让我知道如何才能让它发挥作用。
答案 0 :(得分:0)
在您的xml文件中,ID为LinearLayout
的{{1}}处于消失模式。因此,您需要在progress_layout
方法中添加此行:
showProgress
我希望这会对你有所帮助。
答案 1 :(得分:0)
我认为简单的解决方案是将进度条移动到视图顶部
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Add content here -->
<RelativeLayout
android:id="@+id/content_fragments_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"></RelativeLayout>
</FrameLayout>
<ListView
android:id="@+id/menu_items_list"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
<!-- move your progress_layout to end of this xml, it will be on top of view -->
<LinearLayout
android:id="@+id/progress_layout"
android:visibility="gone"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/horizontal_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminateOnly="false"
android:max="10000"
android:maxHeight="15dip"
android:minHeight="10dip" />
</LinearLayout>
现在你只想在展示它时设置visibility = VISIBLE。