【问题标题】:How to show Progress Bar on Action Bar in android?如何在android中的操作栏上显示进度条?
【发布时间】:2016-09-26 07:14:35
【问题描述】:
我想在我的操作栏中显示进度条。我尝试展示它,但当我尝试展示它时,我会同时获得进度条、微调器和水平操作栏。
顶部蓝色水平进度条正在运行,右侧微调器正在运行。但我只想要 Hubsystem 徽标下方的顶部蓝色进度条。我不知道为什么会显示微调器栏。
我正在使用以下代码:
RequestWindowFeature(Android.Views.WindowFeatures.Progress);
base.OnCreate(bundle);
SetProgressBarIndeterminateVisibility(true);
SetProgressBarIndeterminate(true);
SetProgressBarVisibility(true);
我如何才能在操作栏底部获得只有蓝色的进度条?
【问题讨论】:
标签:
android
xamarin
xamarin.android
progress-bar
xamarin.forms
【解决方案1】:
设计很简单,只需在 Activity 的主布局中添加一个水平样式的进度条即可。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent">
<ProgressBar android:id="@+id/activity_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-8dp"
style="@android:style/Widget.DeviceDefault.ProgressBar.Horizontal"
/>
<!-- Other layouts -->
</LinearLayout>
这里我保留了 android:layout_marginTop="-8dp" 因为如果您的操作栏有阴影,那么它将调整到操作栏附近。如果没有阴影则根据你的调整。
注意:仅当您在 XML 布局中使用 ToolBar 时才可接受。
如果您正在使用自定义编码,请在 MainActivity 中执行此操作。
public abstract class MainActivity extends Activity {
private ProgressBar mProgressBar;
@Override
public void setContentView(View view) {
init().addView(view);
}
@Override
public void setContentView(int layoutResID) {
getLayoutInflater().inflate(layoutResID,init(),true);
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
init().addView(view,params);
}
private ViewGroup init(){
super.setContentView(R.layout.progress);
mProgressBar = (ProgressBar) findViewById(R.id.activity_bar);
return (ViewGroup) findViewById(R.id.activity_frame);
}
protected ProgressBar getProgressBar(){
return mProgressBar;
}
}