【问题标题】:Android Fullscreen dialog confirmation and dismissive actionsAndroid 全屏对话框确认和不屑一顾的动作
【发布时间】:2015-01-20 09:17:45
【问题描述】:

材料设计中的全屏对话框应在操作栏/工具栏上具有确认和拒绝操作。

我的问题,我该怎么做?

显示对话框:

getFragmentManager().beginTransaction()
    .add(R.id.container, new MyDialogFragment())
    .addToBackStack(null).commit();

我的对话片段:

public class MyDialogFragment extends DialogFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         return inflater.inflate(R.layout.fragment_layout, container, false);
    }
}

【问题讨论】:

  • 你的布局文件是什么样的?我在创建全屏对话框时遇到了问题,看来你已经做到了。
  • 您能详细说明您遇到了什么困难吗?布局本身应该是您想要的简单或复杂,我假设您已经为活动和片段完成了布局。全屏对话框的唯一视觉区别是我用红色突出显示的区域。
  • 我认为这个问题 (stackoverflow.com/questions/30684312/…) 总结得很好。默认情况下,对话框不是全屏的。
  • 对于全屏对话框,您应该将对话框视为片段。 MyDialogDragment 片段 = new MyDialogFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).addToBackStack(null).commit(); android 文档有一个很好的例子,滚动到 Dialog Fullscreen 部分:developer.android.com/guide/topics/ui/dialogs.html
  • @Dellkan 在某些情况下,您可能希望将其显示为对话框,例如在平板电脑等较大的屏幕上,然后在较小的设备上显示为全屏片段。一个可能的用例可能是登录对话框。由于登录通常只需要用户名和密码,因此没有必要用两个 EditText 和一个登录按钮填满整个平板电脑屏幕。所以对话似乎更合适。但在较小的设备上,对话框可能太小,因此最好将其显示为全屏对话框。

标签: android material-design


【解决方案1】:

只需要做两件事:

  • 更改向上图标
  • 向片段添加菜单

更换图标:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ((ActionBarActivity) getActivity()).getSupportActionBar().setHomeAsUpIndicator(android.R.drawable.ic_menu_close_clear_cancel);
}

添加保存菜单:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.save_menu, menu);
}

R.menu.save_menu:

<?xml version="1.0" encoding="utf-8"?>
<menu
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:android="http://schemas.android.com/apk/res/android">
   <item
       android:id="@+id/save
       app:showAsAction="always|withText"
       android:title="@string/save"/>
</menu>

【讨论】:

  • 当对话框关闭时你不应该恢复活动的操作栏吗?
猜你喜欢
  • 2021-11-20
  • 1970-01-01
  • 2022-07-23
  • 1970-01-01
  • 2013-08-21
  • 2014-08-20
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
相关资源
最近更新 更多