创建于Android的定制对话框对话框、创建于、Android

2023-09-04 23:00:14 作者:墨韵丿

我想创建Android中的自定义对话框。但是,不管我试图做的,我不能够改变对话框的宽度。它只是保持相同。以下是我设置为对话内容的看法。

I am trying to create a custom dialog in Android. But whatever I tried to do, I am not able to change the width of the dialog. It just remains the same. The following is the view that I am setting as the content for the dialog.

<RelativeLayout  
android:id="@+id/current_stats"
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:visibility="visible">
<ImageView android:id="@+id/player_image" 
    android:src="@drawable/person"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"/>
<TextView   
    android:id="@+id/player_name"
    android:layout_below="@id/player_image"
    android:layout_centerHorizontal="true"
    android:text="Raja Ram"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<ImageButton android:id="@+id/dialog_close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:background="#00000000"
    android:src="@drawable/close_button_selector"/>
<ImageButton android:id="@+id/dialog_flip"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:background="#00000000"
    android:src="@drawable/rotate"/>
</RelativeLayout>

正如你所看到的,到处都是我使用WRAP_CONTENT这个code样本。我也尝试了以下选项

As you can see, everywhere I am using wrap_content in this code sample. Also I tried the following options

1)设置自定义风格,同时创造对话是这样的。

1) Setting a custom style while creating the Dialog like this.

dialog = new Dialog(this,R.style.Theme_Dialog);

和样式如下:

<resources>
<style name="Theme" parent="android:Theme">
</style>
<style name="Theme.Dialog">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
</resources>

2)设置)的参数在onCreateDialog(认为像这样

2) Setting the parameters for the view in the onCreateDialog() like this

LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.player_info, null, false);
ViewGroup.LayoutParams p = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.setContentView(v,p);

3)我也试图设置窗口参数,这样在onCreateDialog()方法

3) I also tried to set the Window parameters like this in the onCreateDialog() method

WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width=WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(params);

但同样没有运气。有人可以帮我这个问题。难道我做错了什么?也可以请你建议我如何设置x和y的志愿服务岗位的对话窗口?

But again no luck. Can someone help me out with this issue. Am I doing something wrong?? Also can you please suggest me how to set the x and y postions for the Dialog window?

感谢

推荐答案

我想通了,过了很长时间的问题。问题是与我所用相对布局的方式。我想我还没有指定的相对位置正确。当我改变了线性布局它工作得很好。它不使用整个屏幕,但只有什么是必需的。

I figured out the problem after a long time. The problem was with the way I used Relative layout. I guess I have not specified the relative position properly. When I changed that to linear layout it worked fine. It was not using up the whole screen but only whatever is required.