DataPicker sieht aus wie altes design auf neue API ' s als auch
Also das problem ist sehr einfach:
Ich haben integrierte DatePicker
in meiner Anwendung.
Nicht als DialogDatePicker
aber als View-Komponente (genauer gesagt, ein View
innerhalb eines Fragment
dynamisch angezeigt und entfernt von einer FrameLayout
enthalten in mein main FragmentActiviy
- layout)..
nun mein problem ist, dass diese DataPicker sieht wie folgt aus:
und nicht wie hier:
selbst wenn ich den Gegner die höhere API ' s, ich habe versucht, meine Min-SDK 16 oder 17, aber es hat nicht geholfen.
Jemand wissen, warum es passiert? und wie kann ich zeigen das neue Erscheinungsbild des data picker?
vorzugsweise auf alten Versionen von Android so gut?
Jede mögliche Hilfe würde geschätzt.
Dank.
EDIT: code:
DataPickerFragment xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="6.5dp"
android:paddingTop="6dp"
android:paddingRight="8.5dp"
android:paddingBottom="8.5dp"
android:background="@drawable/date_picker_background">
<DatePicker
android:id="@+id/datePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:paddingBottom="40dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/bCancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1.0"
android:onClick="buttonCanceDatePickerOnclick"
android:text="@string/cancel" />
<Button
android:id="@+id/bSave"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1.0"
android:onClick="buttonSaveDatePickerOnclick"
android:text="@string/save" />
</LinearLayout>
</FrameLayout>
DataPickerFramgnet Klasse:
public class DatePickerFragment extends Fragment {
private Button bSave, bCancel;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.date_picker_fragment_layout,
container, false);
return rootView;
}
}
UPDATE:
Manifast Datei:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.emildesign.sgreportmanager"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Crittercism -->
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<application
android:allowBackup="true"
android:name="com.emildesign.sgreportmanager.SGRaportManagerAppObj"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<activity
android:name="com.emildesign.sgreportmanager.activities.LoginScrActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.emildesign.sgreportmanager.activities.ReportsTableActivity"
android:screenOrientation="landscape">
</activity>
<activity
android:name="com.emildesign.sgreportmanager.activities.ParametersActivity"
android:screenOrientation="landscape">
</activity>
<activity android:name="com.crittercism.NotificationActivity"/>
</application>
gut fand ich, wo mein problem war, das ich eingestellt:
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
meine Anwendung im Vollbildmodus und das galt den alten Stil des data picker ändern, um:
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
Wird folgender DataPicker:
Es ist besser als vorher aber das ist noch nicht das Ergebnis was ich Suche.
- Wo werden Sie sehen, dass setzen von Datum und dialog?
- ich möchte wissen, zu
- Carroll, nicht deine Frage verstanden.
- Hallo, ich bin vor dem gleichen problem,ist es möglich, zu halten das gleiche Thema, sowie neue Datumsauswahl, als mein ganzes Projekt basiert auf dem Hauptthema und ich will keine änderungen,ich habe auch versucht, durch die Angabe der Thema.Licht für Besondere Aktivität, sondern es ändert sich das Thema der alert-dialog statt Datumsauswahl,bitte helfen Sie mir
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie Ihre
android:targetSdkVersion
11 oder höher. Hier ist eine Beispiel-Anwendung demonstriert dies.UPDATE
Zuerst, Ihre ursprüngliche
DatePicker
screenshot ist von einem dunklen theme (z.B.Theme.Holo
), während Ihre zweite screenshot ist von einem Thema Licht (z.B.Theme.Holo.Light
).Zweite, die
DatePicker
Dokumentation hat die folgenden einleitenden Satz:Können Sie loszuwerden, die
CalendarView
überandroid:calendarViewShown
(odersetCalendarViewShown()
). Wenn Sie versuchen, werden Sie feststellen, dass Ihre Jahres-spinner erscheint, sobald dieCalendarView
ist Weg.android:targetSdkVersion
11 oder höher. Das build-Ziel und dieandroid:targetSdkVersion
sind unabhängige Konzepte.DatePicker
und deshalb nicht die spezielle Anleitung für Sie. Könnten Sie die Eröffnung eine frische StackOverflow Frage zu versuchen, eine Antwort bekommen. Sorry!Verwenden Sie die Holo Thema.
So, Ihr Thema sollte wie folgt Aussehen:
android:theme="@android:style/Theme.Holo.Light"
in Ihrem AndroidManifest.xml nur in dieser Aktivität Abschnitt. Habe es gerade getestet, es funktioniert.Beantwortung Ihrer update
Ändern
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
zu
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
Hier ist ein snippet für das aufrufende Gerät ist standardmäßig Datum Und Uhrzeit Picker
date_time_layout.xml
Setzen diese Methode in der Klasse, und rufen Sie es mit showDateAndTimePicker();
Müssen Sie
DialogFragment
für das Ergebnis, die Sie suchen:http://developer.android.com/guide/topics/ui/controls/pickers.html