ActionBarにプログレスバーを追加しようとしています。私は回転する円について話している。リクエストして設定しようとしたのですが、何も起こりません。私は多くのありそうな質問を読みましたが、それでも私が間違っていることを理解することができませんでした。
私のコード:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//Above setContentView, very important
setContentView(R.layout.activity_main);
//...other stuff
}
Createで呼び出さない他のメソッド(onClickメソッドです)
public void plus(View view){
setProgressBarIndeterminateVisibility(true);//Nothing happens
//...other stuff
}
何が悪いのかわかりません。助けてください。
注:falseに設定したことはありません
編集:私はmmloolooの第2部を試しましたが、絶対に気づきました。パート3でもありません。パート4を試しましたが、例外を与えました。
「このアクティビティには、ウィンドウの装飾によって提供されるアクションバーが既にあります。代わりにツールバーを使用するには、Window.FEATURE_ACTION_BARを要求せず、テーマでwindowActionBarをfalseに設定してください。」
Window.FEATURE_ACTION_BARリクエストを削除しましたが、同じ例外が発生しました。 windowActionBarをfalseに設定する必要はないと思いますが、設定しても同じ例外が発生しました。
他のオプションはありますか?
ウィンドウが提供するプログレスバーは、ツールバーで非推奨になりました。
使用する必要があります:
setSupportProgressBarIndeterminateVisibility(true);
の代わりに
setProgressBarIndeterminateVisibility(true);
ActionBarActivity
を拡張するためです。 (supportRequestWindowFeature
の代わりにrequestWindowFeature
を使用しているため)
クラッシュした場合、これは既知の issue です。ライブラリが更新されて申し訳ありませんが、現在は何もしていません。
setSupportProgressBarIndeterminateVisibility()のクラッシュは、将来のリリースで修正され、何も動作しなくなります。
私の解決策:
progressBarウィジェットでツールバーを使用します。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_spinner);
progressBar.setVisibility(View.VISIBLE);
}
レイアウト:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<include layout="@layout/toolbar"/>
<FrameLayout
Android:id="@+id/container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</LinearLayout>
そして
ツールバー.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<ProgressBar
Android:id="@+id/progress_spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="end"
Android:indeterminate="true"
Android:visibility="gone" />
</Android.support.v7.widget.Toolbar>