Edittext由于My Recyclerview中的属性descendantFocusability =“blocksDescendants”,无法编辑

时间:2017-10-26 08:40:40

标签: java android

我遇到一些问题,由于Recyclerview中的descendantFocusability =“blocksDescendants”,我的edittext无法编辑。有一个Activity具有Recyclerview。如果我不使用这个descendantFocusability那么我的列表失去了它的焦点。任何人都可以帮我解决这个问题?????如何使Edittext可编辑。我尝试了所有解决方案,如focusableintouchmode =“true”和focusabale =“false”等。

先谢谢。

**MyActivity.class**

    <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:andandroid="http://schemas.android.com/tools"
    android:descendantFocusability="blocksDescendants"
    android:background="@drawable/ic_bg">


            <android.support.v7.widget.RecyclerView
                android:id="@+id/listQuestion"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:nestedScrollingEnabled="false"
                android:orientation="vertical"
                android:scrollbars="none" />

     </RelativeLayout>

raw.xml

<RelativeLayout 
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:hedgehog="http://schemas.android.com/tools"
android:id="@+id/rawSubQuestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_black_left_right"
android:minHeight="@dimen/_70sdp">


<RelativeLayout
    android:id="@+id/rlMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/_5sdp"
    android:paddingLeft="@dimen/_35sdp"
    android:paddingRight="@dimen/_35sdp"
    android:paddingTop="@dimen/_5sdp">

    <!--Name-->

    <TextView
        android:id="@+id/txtName"
        style="@style/commonTextStyle"
        android:text="Name" />

    <!--Description-->

    <TextView
        android:id="@+id/txtDescription"
        style="@style/commonTextStyle"
        android:layout_below="@+id/txtName"
        android:gravity="top"
        android:maxLines="3"
        android:minLines="2"
        android:singleLine="false"
        android:text="Description"
        android:textSize="@dimen/_10sdp" />

    <LinearLayout
        android:id="@+id/rlType"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtDescription"
        android:layout_marginTop="@dimen/_2sdp"
        android:orientation="vertical"
        android:visibility="visible">

        <RatingBar
            android:id="@+id/ratingBar"
            style="@style/RatingBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:background="@null"
            android:isIndicator="false"
            android:numStars="5"
            android:stepSize="1.0"
            android:visibility="visible" />

        <LinearLayout
            android:id="@+id/circleRatingLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:visibility="visible">

            <com.whinc.widget.ratingbar.RatingBar
                android:id="@+id/ratingBarCircle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:rb_click_rating="true"
                app:rb_count="3"
                app:rb_empty="@drawable/r_circle_white"
                app:rb_fill="@drawable/r_circle_yellow"
                app:rb_max_count="10"
                app:rb_space="10dp"
                app:rb_touch_rating="true" />

            <TextView
                android:id="@+id/CircleRatingTV"
                style="@style/commonTextStyle"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="end"
                android:text="1" />


        </LinearLayout>

        <RelativeLayout
            android:id="@+id/rlSeekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:visibility="visible">

            <SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:max="10"
                android:paddingLeft="0dp"
                android:paddingRight="0dp"
                android:progress="5"
                android:thumb="@drawable/seekbar_thumb_drawable"
                android:thumbOffset="0dp" />

            <TextView
                android:id="@+id/txtSeekBarCount"
                style="@style/commonTextStyle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:gravity="center"
                android:minWidth="@dimen/_40sdp"
                android:text="10"
                android:textSize="@dimen/_12sdp" />

        </RelativeLayout>
    </LinearLayout>

</RelativeLayout>

<!--Note-->

<EditText
    android:id="@+id/edtNote"
    style="@style/editTextWhiteGray"
    android:layout_centerVertical="true"
    android:hint="@string/Note"
    android:layout_below="@id/rlMain"
    android:inputType="textMultiLine"
    android:visibility="gone" />

1 个答案:

答案 0 :(得分:2)

您的EditText位于根ViewGroup(RelativeLayout)之外:

</RelativeLayout>

<!--Note-->

<EditText
    android:id="@+id/edtNote"
    style="@style/editTextWhiteGray"
    android:layout_centerVertical="true"
    android:hint="@string/Note"
    android:visibility="gone"
/>

在RelativeLayout中包含EditText。此外,您应该添加 android:inputType 外观here以获取更多信息。将 LayoutParams 添加到您丢失的所有视图中,为什么需要描述here。并在代码中重新检查有关EditText小部件的所有逻辑。