0

ボタンをクリックしているときにプログラムでボタンを追加しています。向きが変わると、そのボタンの位置も変更され、そのボタンの位置に PopupWindow を表示する必要があります。

4

1 に答える 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 に答える