2013-01-23 42 views
2

我目前正在使用DialogFragment,但我无法在右上角设置图标。如何在DialogFragment的右侧标题上添加图标?

我已经看到了一些技巧来显示图标,对话框图标:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog myDialog = new AlertDialog.Builder(getActivity()) 
    .setIcon(R.drawable.ic_info) 
    .setTitle(title) 
    return myDialog; 
} 

,但这不会帮助的图标在左侧,而不是直观的点击

我知道我可以设置一个自定义布局,但我肯定布局将反映所有的操作系​​统和OEM制造商定制(相同的风格)

任何帮助吗?

enter image description here

回答

7

我知道这是一个老问题,它最有可能得到解决,但也许有人认为它有用。

在您onCreateView方法做这样的事情:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    getDialog().requestWindowFeature(Window.FEATURE_LEFT_ICON); 
    // your view related code, inflate or whatever 
    ... 

这是为了准备与continer设置图标标题视图,但它不会存在,直到视图层次结构已实例化后,所以你需要设置一个是后叫,像onActivityCreated,这样的方法的图标:

@Override 
public void onActivityCreated(Bundle savedInstanceState) 
{ 
    super.onActivityCreated(savedInstanceState); 
    getDialog().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher); 
} 

一定要首先调用父类方法或你的图标可以被覆盖。

希望这可以帮助别人......从墨西哥

问候......

+0

的问题是永远不会太老了一个答案:)我在想,为什么不能在XML中添加的图标DialogFragment本身?这可能吗? –

+0

很好的答案:D – sonida

相关问题