Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以透明背景像弹出窗口一样显示片段_Android_Popup_Fragment_Alert - Fatal编程技术网

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
的动画。如果您想将
片段居中
,您可以创建一个空的、透明的、居中的
视图组
,然后将
片段
添加到其中。啊,这很有意义。你能给我看一些代码吗。非常感谢你的建议!