2016-07-20 5 views
0

В этом вопросе говорится все, я использую CalendarView в своем макете для простого представления в месяц, где пользователь может выбрать дату, но по какой-то причине CalendarView просто занимает весь экран, есть ли способ, чтобы CalendarView отображал только один месяц за раз, а не занимал весь экран? благодаряCalendarView height to wrap current month

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

} 
} 
+1

предоставьте соответствующий код! – johnrao07

+0

@ johnrao07 его единственный простой тег xml calendar, но ok –

ответ

1

Это не совсем простой, хотя. Я сделал использовать calenderview, я сделал это с помощью этой библиотеки на GitHub

https://github.com/SundeepK/CompactCalendarView

Попробуйте использовать его, это довольно гибкая и расширяемая!

+0

нет, это не так, некоторые месяцы не будут полностью отображаться, а некоторые будут, разные месяцы имеют разные размеры –

+0

sry bro, попробуйте использовать библиотеку вместо этого! – johnrao07

+0

спасибо, проверит это, но дело в том, что везде во время поиска я вижу, что dsplays всего один месяц за прокрутку, поэтому я уверен, что есть решение –

0

Если пользователь заберет только дату, вы можете использовать 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 
    } 
} 

показывая Fragmet

DialogFragment newFragment = new DatePickerFragment(); 
newFragment.show(getSupportFragmentManager(), "datePicker"); 

Надежда эта помощь, больше информации для Pickers here

+0

спасибо, мне известно о диалоговом окне выбора даты, но я хочу использовать CalendarView для реализовать его в моем макете –

0

Положите его внутри 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> 

, который работает для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^