2016-10-21 20 views
2

時間のピッカーを表示して、フルクロックを表示するようにしています。 TimePickerGridLayoutです。画面には、DialogFragmentまたはTimePickerDialogとオーバーレイされません。Androidタイムピッカーは縦長で表示され、横長で表示されません

現在のところ、これは風景の中に示したものです:

Only time from time picker shown

あなたが見ることができるように、あなたは、唯一のデフォルトの時間と時間を選ぶことができます何もありません。

Full time picker shown

時間ピッカーのレイアウト:私はそれが(作品)にもちょうど肖像画のように時計を表示するために取得しようとしています

<package.name.ScrollableTimePicker 
       android:id="@+id/time_picker" 
       android:layout_height="wrap_content" 
       android:layout_width="match_parent" /> 

TimePickerを拡張するクラス:

public class ScrollableTimePicker extends TimePicker { 

    public ScrollableTimePicker(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public ScrollableTimePicker(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public ScrollableTimePicker(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent ev) { 
     // Keeps events to time picker 
     if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { 
      ViewParent p = getParent(); 
      if (p != null) { 
       p.requestDisallowInterceptTouchEvent(true); 
      } 
     } 

     return false; 
    } 
} 

私は、インターネットを中心に見て、なかったことこれらの記事を見つけました私を助け:

  1. Android TimePicker not displayed well on landscape mode

私は私の時間ピッカーのためのタイトルを持っていません。

これは、既に実装されている
  • ScrollView fighting with scroll of TimePicker, Timepicker not scrolling as a result
  • https://code.google.com/p/android/issues/detail?id=201766
  • マニフェスト内のコードを試みましたそれでも動作しませんでした。 siddeshとして

    UPDATE TimePicker200dpに作品のlayout_heightを設定し、提案し、それは肖像画を遮断しています。さて、肖像画は200dp背が高いですが、遮断され、風景が完全に示されている:

    Landscape TimePicker with height 200dp fully shown

    Portrait TimePicker with height 200dp, with half cut off.

    +0

    をそのより良い姿勢変更デフォルトのカレンダーにdatepickerdialog却下する同じ事目覚まし時計 – siddhesh

    +0

    を設定するためにあなたをご確認のカレンダーアプリはそれがDatePickerDialogない@siddheshん、それはTimePickerです(そしてTimePickerDialogでもない) –

    +0

    あなたのセルにアラームを設定して、timepickerをクリックして、あなたの電話タイマーを回転させると、同じことが起きていることを確認してください。 – siddhesh

    答えて

    0

    私はTimePickerはScrollViewにいたとき、あなたの診断は役に立ちましたあまりにもこの問題を抱えていました。

    ActivityでプログラムでTimePickerの高さを設定できます。onCreateで

    ()を追加します

    TimePicker tp = (TimePicker) findViewById(R.id.time_picker); 
    
    // get display dimensions 
    Point p = new Point(); 
    getWindowManager().getDefaultDisplay().getSize(p); 
    
    int newHeight; 
    
    if(p.x > p.y) { 
        // if landscape, convert 200dp to px 
        newHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics()); 
    } else { 
        newHeight = WindowManager.LayoutParams.WRAP_CONTENT; 
    } 
    
    // set TimePicker height 
    tp.getLayoutParams().height = newHeight; 
    
    関連する問題