ボタンをクリックしているときにプログラムでボタンを追加しています。向きが変わると、そのボタンの位置も変更され、そのボタンの位置に PopupWindow を表示する必要があります。
質問する
11574 次
1 に答える
0
私はそれを作るために私が考えたことをあなたに伝えようとしていますが、最良の解決策ではないかもしれません. ここにあるすべてのソースは疑似コードです。
これが親レイアウトで、ボタンとポップアップ ウィンドウを同じ位置に設定します。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:layout_marginTop="80dp"
android:layout_marginLeft="80dp" >
</Button>
<com.yourdomain.android.PopupWindow
android:layout_marginTop="80dp"
android:layout_marginLeft="80dp"
android:visibility="GONE">
</com.yourdomain.android.PopupWindow>
</RelativeLayout>
ポップアップウィンドウのレイアウトは次のとおりです。
<LinearLayout
android:id="@+id/linearlayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible" >
</LinearLayout>
ここで、このレイアウトにバインドするクラスを作成して、カスタム コンポーネントを作成できます。
public class PopupWindow extends LinearLayout {
protected Context _context = null;
public PopupWindow (Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
_context = context;
setupView(context);
}
public PopupWindow (Context context) {
super(context);
// TODO Auto-generated constructor stub
_context = context;
setupView(context);
}
public void setupView (Context context)
{
// here to initialize all children views in this layout
}
public void show ()
{
this.setVisibility (LinearLayout.Visible);
}
public void hide ()
{
this.setVisibility (LinearLayout.GONE);
}
}
これが役立つことを願っています。
于 2012-09-13T12:05:54.347 に答える