0

まず、アプリケーションをどのように見せたいかについて少し紹介します。

http://img806.imageshack.us/i/whatiwant.jpg/

私は、RelativeLayoutを使用して、同じレイアウトでそのボタンバーとImageViewを実現することができました。

今私の問題は、ボタン1を押した後に表示されるウィンドウ/ポップアップ/ダイアログを表示する方法を知りたいということです。

スポーンするウィンドウで何が必要ですか。1。背景が半透明である必要があります。2.フォーカスが失われると自動的に閉じます。3。メインアプリケーションでイベントをトリガーできるボタンとアクションリスナーが必要です。

私はAndroidを見てきました。PopupWindowですが、それについて助けを得るのに多くの問題に直面していました。つまり、アクションリスナー、却下などです。そこで、私はアイデアを捨てました。

今のところ、私はダイアログを操作しています。これまでのところ、ダイアログを表示することしかできませんでした。問題1.カスタムの高さと幅のプロパティが何らかの理由で機能しない(レイアウトパラメータを使用して実装)2。半透明の背景を作成するにはどうすればよいですか?3.フォーカスが失われたときにダイアログを閉じる/非表示にするにはどうすればよいですか?

私の質問は、ダイアログ以外にこれを行うためのより良い方法はありますか?もしそうなら、それらが何であるかを教えてください。ダイアログを使用する方法である場合、前述の問題をどのように解決すればよいですか?

どんな助けでもいただければ幸いです。

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

4

2 に答える 2

4

PopupWindowはより良いオプションです。PopupWindowの例についてはAutoCompleteTextViewを確認してください。PopupWindowを作成するには、

PopupWindow myWindow = new PopupWindow( content_view, width, height, true )

popupWindowが閉じられたときに何かをしたい場合は、DismissListenerを使用します。

また、アクションリスナーはPopupWindowから独立しています。つまり、content_viewにボタンがある場合は、通常の場合と同じ方法でonClickリスナーを設定できます。

PopupWindowの背景を設定する必要があります。そうしないと、戻るボタンを押しても閉じられません。

HTH!

于 2011-03-29T14:46:20.133 に答える
0

私の考えは次のとおりです。

  1. 「ダイアログ」をレイアウトの要素にしますが、最初はandroid:visibility="gone"を使用します。これをRelativeLayoutの最後の要素として配置し、他のすべてのレイアウト要素の上に配置するようにしてください(z順)。

  2. ボタン1のonClickメソッドで、可視性を「可視」に切り替えます。

  3. ビューのOnFocusChangeListenerで、hasFocusがfalseの場合は常に、onFocusChange(View v、boolean hasFocus)メソッドで「gone」に戻します。

編集:ダイアログをレイアウトの要素にするには、次のようにします。

<RelativeLayout>
  <!-- Your other layout items here -->
  <LinearLayout
    android:id="@+dialoglayout"
    android:layout_alignBelow="@id/yourbuttonbarlayout
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp">
    <!-- Your dialog elements here -->
  </LinearLayout>
</RelativeLayout>

ボタンバーのレイアウトにIDを指定してください(IDにはボタンバーレイアウトを想定しています。このようなダイアログが3つ必要な場合は、すべて同じレイアウトパラメータを指定して、個々の表示を切り替えることができます。これらはすべて同じに表示されます。スポット。

レイアウトの背景をいつでも使用して、境界線をシミュレートできます。

于 2011-03-29T14:18:51.800 に答える