Android的DialogFragment的使用
在使用时,对Android系统有了最低API为11的限制
1.新建继承于DialogFragment的类
在类中由一个按钮,点击按钮关闭对话框。
layout中只有一个按钮,代码在此就不贴出来了。
public class Fragment_Search extends DialogFragment { Button btn_close; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.search, container, false); // 初始化控件 btn_close = (Button) v.findViewById(R.id.btn_cancel); btn_close.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 关闭对话框 dismiss(); } }); return v; }
2.使用Fragment的Activity
MainActivity类要继承FragmentActivity,因为在下面getSupportFragmentManager要用到
public class MainActivity extends FragmentActivity { public Button btn_search; Fragment_Search dialogFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_search = (Button) findViewById(R.id.btn_search); btn_search.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { showSearchDialog(); } }); } protected void showSearchDialog() { // Create and show the dialog. if(dialogFragment == null) dialogFragment = new Fragment_Search(); dialogFragment.setStyle(DialogFragment.STYLE_NO_TITLE, 0); dialogFragment.show(getSupportFragmentManager(), "dialog"); } }
改变DialogFragment的样式可以用setStyle改变
总结:
对话框已经显示出来了,但是不知如何改变显示出来的DialogFragment的大小,如果大家有改变大小的方法,一定回复啊……
我知道了一种改变大小的方法,不知道是不是一般应该用的,也就是改变内容的大小,不是说改变layout的padding的值或者高度宽度什么的,而是改变内容的padding。我改变的是一个关闭按钮的padding,这个按钮本来是android:layout_alignParentRight="true",改变padding变大之后,整个Dialog的高度变小了,默认Dialog是居中显示的。
期待大家还有更好的方法