对Dialog
我的知识人员已经回答了这个问题,而不是DialogFrame
。
我想删除此图片中显示的边框。 对不起,不允许拍照。
这是我的代码:
public class SettingDialogFragment extends DialogFragment {
public SettingDialogFragment() {
// constructor
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
ContextThemeWrapper context = new ContextThemeWrapper(getActivity(), 0);
context.setTheme(R.style.dialog);
AlertDialog.Builder alertDlgBldr = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
alertDlgBldr.setView(inflater.inflate(R.layout.dialog_theme, null));
return alertDlgBldr.create();
}
}
这是布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/dialog_title"
style="@style/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/dialog_theme_title"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/logo_color"
android:textStyle="bold" />
<TextView
android:id="@+id/dialog_text"
style="@style/body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/dialog_text"
android:layout_below="@id/dialog_title"
android:text="Demonstation how to use vector drawables to style a dialog box"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/logo_color" />
<ImageView
android:id="@+id/dialog_image"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_below="@id/dialog_text"
android:layout_centerHorizontal="true"
android:src="@drawable/cats_dogs" />
</RelativeLayout>
这是风格
<style
name="dialog">
<!-- title encapsulating main part (backgroud) of custom alertdialog -->
<item
name="android:windowFrame">@null</item>
<!-- turn off any drawable used to draw a frame on the window -->
<item
name="android:windowBackground">@drawable/dialog_background</item>
<!-- turn off any drawable used to draw a frame on the window -->
<item
name="android:windowIsFloating">true</item>
<!-- float the window so it does not fill the screen -->
<item
name="android:windowNoTitle">true</item>
<!-- remove the title bar we make our own-->
<item
name="android:windowContentOverlay">@null</item>
<!-- remove the shadow from under the title bar -->
</style>
这是 drawable
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="#00000000"/>
<corners
android:radius="10dp"/>
<stroke
android:color="#FFF000"
android:width="3dp" />
</shape>
我想我现在尝试了书中的每一招。已搜索Stackoverflow三天,但大多数答案与Dialog
而非DialogFragment
相关。
请帮帮我
此代码终于解决了问题!
public class SettingDialogFragment extends DialogFragment {
public SettingDialogFragment() {
// this empty constructor without any parameter is required by Android
// to in order to instantiate the fragment when it needs to do so.
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NORMAL, android.R.style.Theme_Light_Panel);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return super.onCreateDialog(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_theme, container, false);
return view;
}
}
答案 0 :(得分:2)
我用过
public class EventAgeGateDialogFragment extends DialogFragment implements DatePicker.OnDateChangedListener {
@Override
public void onResume()
{
super.onResume();
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.requestWindowFeature(DialogFragment.STYLE_NO_TITLE);
View view = View.inflate(getActivity(), R.layout.the_dialog_layout, null);
dialog.setContentView(view);
return dialog;
}
}
答案 1 :(得分:1)
这行代码将帮助您
dialog.getWindow()。setBackgroundDrawable(new ColorDrawable(0));
同时检查两个链接