2016-10-20 4 views
0

kankan.wheel.widget.WheelView을 사용하여 내 앱에 수직 피커 휠 뷰를 포함 시켰습니다. 내 WheelView의 항목은 EditText입니다. 탭 한 상태에서 선택된 항목이 포커스를 얻길 원합니다.세로 휠보기 : 선택한 항목을 편집 가능하게 만드는 방법은 무엇입니까?

나는 WheelViewView 아닌 ViewGroup의 직접적인 서브 클래스이며, (항목을 포함)의 LinearLayout 필드는 실제 아이가 아닌,하지만 내용을 그리는 데 사용되는 것으로 알고 있습니다. 포커스를 EditText 항목 중 하나로 이동하고 실제로 텍스트를 편집하기 위해 키보드를 표시하려면 어떻게해야합니까? onTouchEvent(MotionEvent event)에 간단히 항목을 추가 할 수 있습니까? WheelViewFrameLayout과 같은 ViewGroup으로 확장하고 LinearLayout 필드를 자식으로 추가해야합니까?

답변

0

마침내이 문제에 대한 해결책을 찾았습니다. 코드는 조금 복잡하지만 기본적으로 나는 FrameLayout를 확장하고이 같은 XML 팽창 새 사용자 정의보기, EditableWheelView, 만들었습니다

<?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> 

날이 EditText 상단에 추가 할 수있는 내부 FrameLayout과를 WheelView의.

코드에서 내부 번호가 WheelView 인 항목이 선택 될 때마다 동일한 어댑터로 코드를 다시 만들고 editable_scroll_view_container에 추가합니다. 또한 내부 WheelView의 값을 FrameLayout 컨테이너의 EditText으로 복사 할 수 있습니다. 항목을 선택 해제하면 editable_scroll_view_container의 내용 만 제거됩니다.

관련 문제