2

画面上の特定の位置にダイアログを配置したいと思います(上から-10px、左から-5px)。

テーマを適用して , を追加しましたandroid:scrollXandroid:scrollY、うまくいかないようです。

解決策はありますか?

以下は私のスタイリングxmlです。

<style name="Theme.MyDialog1" parent="android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:layout_width">300dp</item>
    <item name="android:scrollX">-10dp</item>
    <item name="android:scrollY">-5dp</item>
</style>

編集:

android:layout_xとも試しandroid:layout_yましたが、役に立ちません!

これは私が持っているものです![ここに画像の説明を入力][1]

しかし、私が本当に欲しいのは、サインアップ ロゴのすぐ下にある特定の x と y の正の位置にあります!!!!![ここに画像の説明を入力][2]

4

2 に答える 2

4

これがコードです!

LayoutParams lp = this.getWindow().getAttributes();
             lp.x=50;lp.y=20;lp.width=100;lp.height=200;lp.gravity=Gravity.TOP | Gravity.LEFT;
            lp.dimAmount=0;            
            lp.flags=LayoutParams.FLAG_LAYOUT_NO_LIMITS | LayoutParams.FLAG_NOT_TOUCH_MODAL;
this.setContentView(view, lp);
于 2011-10-03T22:27:48.417 に答える
1

ダイアログテーマを拡張しないでください。パネルテーマを拡張してください。

<style name="Theme.CustomPanel" parent="@android:style/Theme.Panel">        
         <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
         <item name="android:backgroundDimEnabled">true</item>
    </style>

これにより、ダイアログのように中央に配置されないことを除けば、ダイアログに似たウィンドウが作成されます。次に、通常どおりにアクティビティを作成して開始します。

左から5ピクセル、上から10ピクセルにするには、レイアウトにパディングを配置するだけです。

 <!-- res/layout/your_layout.xml -->
   <FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:paddingTop="10px"
  android:paddingLeft="5px"></FrameLayout>

そしてもちろん、あなたの活動は次のように正常でなければなりません

public class NonCenteredDialogActivity extends Activity{
      protected void onCreate(Bundle bundle){
          super.onCreate(bundle);
          setContentView(R.layout.your_layout);
      }
    }
于 2011-10-09T22:14:55.977 に答える