1

次のように動作するアプリがあります。

  • 画面の上部はアプリの「主要な」部分であり、ユーザーが操作できる実際のコンテンツがここに表示されます。

  • 画面の下部 (おそらく画面の高さの 1/4 程度) はナビゲーション ホイールです。ユーザーはこのホイールを回して、ディスプレイの上部を変更できます。回すと上部全体が別のものに置き換わります。

これら 2 つの部分は、フラグメントを使用して実装されます。下部 (ナビゲーション ホイール) は、回転可能なビュー階層を表示する単なる静的フラグメントです。上部(コンテンツ表示エリア)もフラグメントですが、ホイールを回すと他のフラグメントに切り替えることができます。

ここで私が望むのは、アプリの起動時に無料のコンテンツ セクションが表示されていることですが、ユーザーがホイールを他のコンテンツ セクションのいずれかに回すと、ウィンドウがポップアップしてコンテンツ表示領域をブロックし、「このモードをオンに購入する」と表示されます。グーグルプレイ。" このポップアップは、その背後にあるコンテンツ領域を明らかにブロックする必要があるため、ユーザーはポップアップの背後にある表示領域の一部を見ることができますが、Google Play トランザクションを完了する前に操作することはできません。コンテンツ領域のビューも同様にグレーアウトできるとよいでしょう。ただし、ユーザーが元の場所に戻ったり、別のコンテンツ セクションに移動したりできるように、画面の下部にあるナビゲーション ホイールをブロックしないでください。最上位のビュー階層をインタラクションからブロックするが、下位のビュー階層はそのままにしておくポップアップを作成するにはどうすればよいですか?

私が知る限り、PopupWindow クラスを使用して、背後の画面の一部のみをブロックするポップアップを作成することはできません。常にすべてをブロックしているようです。

こちらがデザインのイラストです。「P」は有料、「F」は無料です。2 番目の画面では、アプリはコンテンツ セクション (灰色のウィンドウの後ろ) を押しても無視されますが、ナビゲーション ホイールは回転できるはずです。

ありがとうございました。

4

3 に答える 3

0

コンテンツを購入するための Google Play の適切なページを開く 1 つのボタンでデフォルトのフラグメントを作成します。次に、ナビゲーション ホイールが回されるたびに、コンテンツを含むフラグメントを表示するか (ユーザーが Google Play トランザクションを終了したとき)、Google Play へのボタンのみを含むデフォルトのフラグメントを表示するかをコードで決定します。

1 つだけ: Google Play は非同期です。ユーザーが実際にトランザクションを完了したにもかかわらず、Google Play がアプリにまだ通知していない場合があります。

トランザクションが開始された場合、ユーザーが実際に支払ったことを 100% 明確にすることなくコンテンツを表示するか、空白のフラグメントを表示するかを決定する必要があります。いずれにせよ、ボタンを再度表示するべきではありません。これは、ユーザーを混乱させるためです (「支払ったのに、なぜ Google Play に再度アクセスする必要があるのですか?」)。

于 2013-09-09T15:16:58.237 に答える