CalendarView 高度包装当前月份
CalendarView height to wrap current month
好吧,问题说明了一切,我在我的布局中使用 CalendarView 作为简单的月视图,用户可以在其中 select 日期,但由于某种原因,CalendarView 只占据了整个屏幕,有没有办法让 CalendarView 一次只显示一个月而不是占据整个屏幕?谢谢
xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<CalendarView
android:id="@+id/calendar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</CalendarView>
</LinearLayout>
java :
public class CalendarActivity extends AppCompatActivity {
CalendarView calendarview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar_layout);
calendarview = (CalendarView) findViewById(R.id.calendar);
}
}
虽然不是很简单。我确实使用了 calenderview,我是在 github
上使用这个库完成的
https://github.com/SundeepK/CompactCalendarView
尝试使用它,它非常灵活且可扩展!
如果用户只会选择一个日期,你可以使用DatePickerFragment。 Lollipop 出现仅一个月。
创建 DatePickerFragment
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
}
显示碎片
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
希望这对 Pickers 有帮助,更多信息 here
将其放在 ScrollView 中
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<CalendarView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/calendarView" />
</ScrollView>
对我有用。
好吧,问题说明了一切,我在我的布局中使用 CalendarView 作为简单的月视图,用户可以在其中 select 日期,但由于某种原因,CalendarView 只占据了整个屏幕,有没有办法让 CalendarView 一次只显示一个月而不是占据整个屏幕?谢谢
xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<CalendarView
android:id="@+id/calendar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</CalendarView>
</LinearLayout>
java :
public class CalendarActivity extends AppCompatActivity {
CalendarView calendarview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar_layout);
calendarview = (CalendarView) findViewById(R.id.calendar);
}
}
虽然不是很简单。我确实使用了 calenderview,我是在 github
上使用这个库完成的https://github.com/SundeepK/CompactCalendarView
尝试使用它,它非常灵活且可扩展!
如果用户只会选择一个日期,你可以使用DatePickerFragment。 Lollipop 出现仅一个月。
创建 DatePickerFragment
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
}
显示碎片
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
希望这对 Pickers 有帮助,更多信息 here
将其放在 ScrollView 中
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<CalendarView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/calendarView" />
</ScrollView>
对我有用。