Android 以透明背景像弹出窗口一样显示片段
我想制作一个Android 以透明背景像弹出窗口一样显示片段,android,popup,fragment,alert,Android,Popup,Fragment,Alert,我想制作一个片段弹出窗口,就像一个警报对话框,但背景是透明的 我的片段如下所示: 目前,我正在做以下工作: @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Player player = (Player)adapterView.getItemAtPosition(i); FragmentTransaction fragmentTrans
片段
弹出窗口,就像一个警报对话框
,但背景是透明的
我的片段如下所示:
目前,我正在做以下工作:
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Player player = (Player)adapterView.getItemAtPosition(i);
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(PlayerProfileFragment.newInstance(null), null);
fragmentTransaction.commit();
}
@覆盖
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Player=(Player)adapterView.getItemAtPosition(i);
FragmentTransaction FragmentTransaction=getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(PlayerProfileFragment.newInstance(null),null);
fragmentTransaction.commit();
}
碎片根本没有显示出来。我想为了让它工作,我应该使用重载add(layoutId,fragment)
,但这只会将片段放置在特定区域,而不会将片段显示为“弹出窗口”
有什么想法吗?片段可能不会显示,因为您没有指定要将其添加到哪个布局。您正在使用的版本将
片段添加到id为0的容器中,如文档所述。我通过使用以下方法创建接口修复了此问题:
public void addFragment(int-viewId,Fragment-Fragment)代码>
然后,我在活动中实现了该侦听器,方法是在其内部有一个FragmentTransaction
:
public void addFragment(int viewId, Fragment fragment){
FragmentTransaction fragmentTransaction = getSupportFragmentTransaction().beginTran....;
fragmentTransaction.add(viewId, fragment);
fragmentTransaction.commit();
}
好的。那么,如何使它像对话框一样弹出并居中?所以它位于当前全屏片段的上方。只是给你一个提示。如果在另一个片段
上添加一个片段
,则最上面的片段
上的空格将不会捕获单击事件。这意味着,如果在空白处有可单击的组件,将触发。您可以使用setCustomAnimation()
轻松设置FragmentTransactions
的动画。如果您想将片段居中
,您可以创建一个空的、透明的、居中的视图组
,然后将片段
添加到其中。啊,这很有意义。你能给我看一些代码吗。非常感谢你的建议!