问题
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