4

私は Android アプリの開発を始めたばかりで、まったく経験がありません。アクティビティ/フラグメント/ウィジェットについて多くのことを読みましたが、私の質問に対する明確な答えが見つからないようです:

アプリのアクション バーをフラグメントとして作成して、アクティビティを変更するたびに 1 つのアクション バー (つまり、1 つのフラグメント) を呼び出すことはできますか? 個々のオプションのフラグメントを作成する動的 UI を開発するつもりであり、すべてのページに一般的なアクション バーを表示するのは簡単だと考えました。

4

4 に答える 4

2

すべてのアクティビティで ActionBar をカスタマイズする場合、最初のステップは XML でカスタム テーマを作成することです。

このテーマでは、ほぼすべてをカスタマイズできます

この優れたブログ投稿を参照してください: http://android-developers.blogspot.be/2011/04/customizing-action-bar.html

ActionBar に Fragment を使用するのはクレイジーです!

すべてのアクティビティにプログラムでコードを追加する場合は、アクティビティを拡張するカスタム アクティビティ (たとえば、MyCustomActivity) を拡張するだけです。

public class MyCustomActivityextends Activity{

このクラスでは、 getActionBar() を使用して、必要に応じて調整できます

于 2013-07-03T21:48:29.303 に答える
0

ほとんどの場合、これは不必要な複雑さです。開始すると、単純な数行のコードだけで、各アクティビティに「同一の」アクション バーが作成されることがわかるでしょう。テーマなどは後で追加できます。この段階でのより良い質問は、Action Bar Sherlock を使用して古いデバイスのサポートを改善する必要があるかどうかです。また、アクティビティ / フラグメント アクティビティ / フラグメント / タブなど、アプリの全体的な構造について考える必要があります。これにより、完全なソリューションを開発するときに簡単に拡張できるものをすばやく動作させることができます。

于 2013-07-04T01:50:52.743 に答える
0

すべてのアクティビティに対して 1 つの ActionBar が必要な場合は、継承を使用します。あなたが望むように ActionBar を処理するアクティビティを作成し、このようにスーパークラスにします。

public class ActionBarActivity extends Activity{

    public void onCreate(... ) {
    ActionBar actionBar = getActionBar();
    // + some other method calls of your choice
    }

    public onCreateOptionsMenu(Menu menu){
        // create your actionbaritems here
    }

    public boolean onOptionsItemSelected(MenuItem item) {
         // handle your click events for the items here
    }
}

これで、継承を使用してすべてのアクティビティにこのアクティビティを使用できます。

public class MyActivity extends ActionBarActivity{
...
}

このセットアップでは、Fragments を自由に使用できます。

新しいアクティビティを呼び出すたびに、スーパー クラスのコールバックが呼び出されることに注意してください。

于 2013-07-03T21:52:50.160 に答える