gpt4 book ai didi

android - DatePicker 看起来也像新 API 上的旧设计

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:46 24 4
gpt4 key购买 nike

所以问题很简单:

我在我的应用程序中集成了一个 DatePicker。不是作为 DialogDatePicker,而是作为 View 组件(更准确地说是 Fragment 中的 View,它动态显示并从 中删除FrameLayout 包含在我的主要 FragmentActiviy 布局中。)。

现在我的问题是这个 DataPicker 看起来像这样: enter image description here

不是这样的:

enter image description here

即使我的目标是更高的 API,我也尝试将我的 Min SDK 设置为 16 或 17,但它也没有任何帮助。

有人知道为什么会这样吗?以及如何显示数据选择器的新外观?最好也适用于旧版本的 Android?

如有任何帮助,我们将不胜感激。

谢谢。

编辑:代码:

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 类:

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;
}
}

更新:

list 文件:

<?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>

好吧,我找到了我的问题所在,我设置:

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 

使我的应用程序全屏显示,这应用了数据选择器的旧样式,将其更改为:

android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

创建以下 DataPicker:

enter image description here

比以前好多了,但这仍然不是我想要的结果。

最佳答案

将您的 android:targetSdkVersion 设置为 11 或更高版本。 Here is a sample application demonstrating this .


更新

首先,您的原始 DatePicker 屏幕截图来自深色主题(例如,Theme.Holo),而您的第二张屏幕截图来自浅色主题(例如,Theme.Holo.Light).

其次,DatePicker 文档有以下开头段落:

This class is a widget for selecting a date. The date can be selected by a year, month, and day spinners or a CalendarView. The set of spinners and the calendar view are automatically synchronized. The client can customize whether only the spinners, or only the calendar view, or both to be displayed. Also the minimal and maximal date from which dates to be selected can be customized.

您可以通过android:calendarViewShown(或setCalendarViewShown())移除CalendarView。当您尝试这样做时,您会发现一旦 CalendarView 消失,您的年份微调器就会出现。

关于android - DatePicker 看起来也像新 API 上的旧设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com