如何在工具栏中显示进度微调器

时间:2015-08-14 05:54:24

标签: android

我想在UIfragment中执行后台任务时在工具栏上显示进度微调器。我想为我的应用程序使用材质设计,所以我设置主题没有操作栏并使用工具栏作为操作栏。我已经尝试过setProgressBarIndeterminateVisibility(Boolean.TRUE),但它无效。

2 个答案:

答案 0 :(得分:2)

我通过将进度条放在父活动布局的工具栏中然后从子片段访问进度条并在需要时显示它来解决它

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:elevation="3dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
    <ProgressBar
        android:id="@+id/toolbar_progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminateTint="#cccccc"
        android:indeterminateTintMode="src_in"
        android:indeterminate="true"
        android:layout_gravity="right"
        android:visibility="gone"
        />
</android.support.v7.widget.Toolbar>

答案 1 :(得分:1)

如果您从 ActionBarActivity 延伸,请尝试以下操作:

public class MainActivity extends ActionBarActivity {

boolean showUp=true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    setContentView(R.layout.activity_main);
    setSupportProgressBarIndeterminateVisibility(Boolean.TRUE);

    Button b = (Button) findViewById(R.id.myButton);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(showUp){
                setSupportProgressBarIndeterminateVisibility(Boolean.FALSE);
            }else {
                setSupportProgressBarIndeterminateVisibility(Boolean.TRUE);
            }
            showUp=!showUp;
        }
    });
}