2

我想将对话框放在屏幕上的特定位置(从顶部-10px,从let-5px)。

我确实应用了主题并添加了android:scrollX, android: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_xand 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 回答