2016-10-20 4 views
0

kankan.wheel.widget.WheelViewを使用して、アプリで垂直ピッカーホイールビューを表示しています。私のWheelViewのアイテムはEditTextです。タップしたときに選択したアイテムにフォーカスを当てたいと思います。垂直ホイールビュー:選択したアイテムを編集可能にする方法は?

私はWheelViewViewないViewGroupの直接のサブクラスであり、かつ(項目が含まれています)そのLinearLayoutフィールドは本当の子供ではなく、内容だけを描画するために使用されていることを理解しています。フォーカスをEditTextアイテムの1つに移動するにはどうしたらいいですか(実際にテキストを編集するにはキーボードを表示します)。 onTouchEvent(MotionEvent event)に何かを追加することはできますか? WheelViewFrameLayoutのようにViewGroupに拡張し、その子としてLinearLayoutフィールドを追加する必要がありますか?

答えて

0

私は最終的にこの問題の解決策を見つけました。コードは少し複雑ですが、基本的に私はFrameLayoutを拡張し、このようなXMLを膨張させる新しいカスタムビュー、EditableWheelView、作成しました:私は上にEditTextを追加することができます内部FrameLayout

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

    <kankan.wheel.widget.WheelView 
     android:id="@+id/editable_scroll_view_wheel_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <FrameLayout 
     android:id="@+id/editable_scroll_view_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" /> 

</merge> 

をWheelViewの

WheelViewの項目が選択されるたびに、同じアダプタで再作成してeditable_scroll_view_containerに追加します。また、FrameLayoutコンテナ内のの値をEditTextにコピーすることもできます。アイテムが選択解除されたら、私は単にeditable_scroll_view_containerの内容を削除します。

関連する問題