2

私は、作成した iOS アプリを移植するために Android を学習中です。ActivityGroup または FragmentActivity を介して、複数のアクティブなアクティビティを一度に画面に表示する方法を理解するのに苦労しています。ActivityGroup は廃止されましたが、ほとんどが最良のアプローチのようです。

詳細に飛び込む前に、正しい (または最善の) アプローチを決定するために、いくつかの助けを借りることができます。

ここに私が作成しようとしているものがあります:

アプリは 3 つのビジュアル セクションに分割する必要があります。1) 持続するダイナミック バナーの上位 50 dp。2) ビューページャー ダッシュボードの中央にあるメイン コンテンツ エリア。他のアクティビティへのナビゲーションを可能にし、それ自体を置き換えるアイコンが表示されます。3) 下部 30 dp のミュージック プレーヤー バー。

基本的に、広告バーとプレーヤー バーはメイン コンテンツ領域から独立して動作するようにしたいと考えています。たとえば、メイン コンテンツ エリアでボタンが押されたときに、メイン コンテンツ エリアをトラックのリストビュー、Web ビュー、マップ ビューなどの新しいアクティビティに置き換えたいと思います。[戻る] ボタンは、メイン コンテンツ領域をダッシュ​​ボード ビュー ページャーに移動します。

上下のバーを非表示にしてメイン コンテンツ エリアを全画面表示にしたい場合や、アクティビティを全画面表示して 3 つすべてを視覚的に置き換えたい場合 (メールへのアクセスなど) もあります。作曲者の意図、連絡先の意図など)

アプリを上部のフラグメント、FragmentActivity によって制御される中央のビューページャー、および下部のフラグメントに分割する FragmentActivity をまとめることはできましたが、フラグメントはアクティビティ自体ではなく、置き換えるものではないため、これは最善のアプローチではないようです。新しいアクティビティを含むビュー ページャーでは、FragmentActivity 自体全体を置き換える必要があります。

要するに、この形式を実装するための最良のレイアウトアプローチは何でしょうか (2.1+ サポート付き)。

ありがとう、ジェームズ

現在のコードを追加:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <fragment
        android:name="com.dmi.AnywhereArtist.AdFragment"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:id="@+id/ad_fragment" >
    </fragment>
    <android.support.v4.view.ViewPager
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:id="@+id/main_pager"
    android:layout_weight="100" 
    android:background= "#00aa00" />
    <fragment
        android:name="com.dmi.AnywhereArtist.PlayerFragment"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:id="@+id/player_fragment" >
    </fragment>
</LinearLayout>
4

2 に答える 2

2

フラグメントを使用します。

Android では、複数のアクティビティが画面に表示されていても、一度に 1 つのアクティビティしか実行できないことに注意してください。

フラグメントは、単一のアクティビティ内にすべてを保持しながら、モジュラー アプリケーション コンポーネントを取得してそれらを結合できるようにすることで、この問題を回避します。

あなたがやろうとしているのは、まさにフラグメントが設計されたものです。

(2.1 以降のサポートを取得するには、サポート パッケージを使用します: http://developer.android.com/sdk/compatibility-library.html。ただし、サポート パッケージは MapFragments をサポートしていないことに注意してください。)

于 2011-12-30T01:10:14.553 に答える
0

一度に複数のアクティブなアクティビティを画面に表示する方法を理解するのに苦労しています

それは、これを行うべきではないからです。それは最初から悪いアプローチであり、今では不要です。フラグメントを使用してください。

アプリを上部のフラグメント、FragmentActivity によって制御される中央のビューページャー、および下部のフラグメントに分離する FragmentActivity をまとめることができましたが、フラグメントはアクティビティ自体ではなく、置き換えられるため、これは最善のアプローチではないようです。新しいアクティビティを含むビュー ページャーでは、FragmentActivity 自体全体を置き換える必要があります。

あなたの説明したアプローチは問題ないようです。ViewPagerメインエリアにはフラグメントを使用してください。Android サポート パッケージを使用して、Android 1.6 に戻るフラグメント サポートを取得します。

于 2011-12-30T01:08:58.467 に答える