2017-09-12 18 views
0

startActivityForResultで呼び出すアクティビティ内にdatePickerウィジェットとtimePickerウィジェットを表示しようとしています。両方のピッカーは、親レイアウトの幅と一致する必要があります。私の場合、それはtimePickerで動作しますが、datePickerは画面全体を記入しません。Activity内のFullScreen DatePicker

プログラムで表示サイズを測定し、onResume内のdatePickerのlayoutparamsを設定しようとしました。しかし残念ながら、それはうまくいきませんでした。

datePickerウィジェットを実装して、親レイアウトの幅に広げる方法を教えてください。

日付ピッカースクリーンショット

enter image description here

timePickerスクリーンショット

enter image description here

activity_date_time_picker.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

    <ScrollView 
     android:id="@+id/scroll_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/toolbar"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

      <DatePicker 
       android:id="@+id/datePicker" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" /> 

      <TimePicker 
       android:id="@+id/timePicker" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" /> 

     </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 

DateTimePickerActでonResume方法ivity:

/* ... */ 
@Override 
protected void onResume() { 
    super.onResume(); 

    int width = Resources.getSystem().getDisplayMetrics().widthPixels; 
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) datePicker.getLayoutParams(); 
    params.width = width; 
    datePicker.setLayoutParams(params); 
} 
/* ... */ 
+0

あなたはこのような何かすべきことがあります imageView.setLayoutParams(新しいLayoutParams(LayoutParams.MATCH_PARENT、LayoutParams.MATCH_PARENT)); – KrishnaJ

答えて

0

は、日付ピッカーのコンストラクタにして、テーマを適用します。この

Style.xml

<style name="DialogTheme" parent="Theme.AppCompat.Light"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

MainActivity.javaを試してみてください(R.style.AppTheme)


DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.AppTheme, this, year, month, day); 
      datePickerDialog.getDatePicker().setMaxDate(c.getTimeInMillis()); 
      return datePickerDialog;