Dialog fragment embedding depends on device

為{幸葍}努か 提交于 2019-12-21 19:52:30

问题


In my app user picks phone number either from contacts or call log. Picking contacts is quite simple and works nice both on phones and tablets - i. e. on phones new fullscreen activity is popped up and on tables I see nice popup dialog with list of contacts.

It seems that there is no way to pick phone number from call log, so I had to implement my own activity (via ListFragment). I would like to achive same behavior as with contacts - on tablets I want to see popup dialog with list view, and on phones I want to see fullscreen activity.

It is possible to achive what is drawn on this pic without having code like: "if this is tabled then show popup else start new activity", and use only styles / layouts which are picked automatically depends on device?


回答1:


It seems that simpiest solution - I use ListFragment and don't want to sacrifice it to DialogFragment - is to create different themes depends on resolution (and platform).

For example:

AndroidManifest.xml

<activity
    android:name="CallLogActivity"
    android:theme="@style/dialog_or_activity">
</activity>

\values-xlarge-v11\styles.xml

<resources>
    <style name="dialog_or_activity" parent="android:Theme.Holo.Light.Dialog">                 
    </style>
</resources>

\values\styles.xml

<style name="dialog_or_activity" parent="android:Theme">        
</style>


来源:https://stackoverflow.com/questions/10996217/dialog-fragment-embedding-depends-on-device

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!