7

理由

フラグメントのビューのドローアブルキャッシュを取得し、そのビューからビットマップを作成するため、これを行う必要があります。このビットマップは、Facebookで公開するために使用されます。

問題

フラグメントを作成すると、フラグメントトランザクションを介して追加されていないため、またビューに含まれているビューがユーザーに表示されないため、ビューが作成されません。

また、画面の正確なレプリカを取得できないため、これらのビューを手動で描画する必要はありません。

私の質問

フラグメントを実際に表示せずに、フラグメントの完全な機能(FragmentTransactionを介して追加する場合と同じ機能)を使用する方法はありますか?

フラグメントが表示されていないときに、フラグメントのビューにアクセスできるようにする必要があります。

前もって感謝します

4

4 に答える 4

3

もう 1 つの質問は、アクティビティをオフスクリーン バッファにレンダリングする方法です。この手法を使用して、フラグメントをオフスクリーン バッファーにレンダリングできます。

この手法には次のものが含まれます。

  • startActivity() の代わりに startActivityForResult() を使用して新しいアクティビティを起動する
  • 描画キャッシュを設定する
  • レイアウトが完了したら getDrawingBitmap() を使用します
于 2013-02-07T23:42:08.503 に答える
1

非表示のレイアウトにフラグメントを追加する方法はありますか? XML の例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/GoneFragmentContainer"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  android:visibility="gone" />

次に、コードで:

MyFragment myFragment = new MyFragment();
getSupportFragmentManager().beginTransaction()
  .add(R.id.GoneFragmentContainer, myFragment)
  .commit();
myFragment.getView().callMethodsOnMyNonVisibleFragment();
于 2013-02-05T17:58:36.797 に答える
1

ここでの回答はあなたの状況にも当てはまりますか? 基本的に、FragmentTransaction のさまざまなメソッドを使用します。

于 2013-01-31T19:01:42.073 に答える
1

Bitmapaから を取得することは避けView、代わりに別の方法で取得します。次に、フラグメントのメソッドで必要な処理を実行できますonAttach()。これは、親アクティビティでフラグメントをインスタンス化するときに呼び出され、表示される前に実行されます。

于 2013-02-08T14:10:46.143 に答える