按钮在版本中不可点击<棒糖

时间:2016-08-22 17:43:20

标签: android

我有一个包含一些视图的基本布局。当存在网络连接时,将显示RecyclerView。当用户滑动以刷新并且没有连接时,在基本布局内部的按钮和文本视图在第一位置不可见,变得可见。问题是该按钮在Android版本<的设备中无法点击。 Lollilop。

basic_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/listSurveysRlt"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">

<com.rey.material.widget.TextView
    android:id="@+id/codeDescTtv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/code_dest_txv_padding_bottom"
    android:visibility="gone"
    android:gravity="center"
    android:layout_above="@+id/sRetryBtn"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:textSize="@dimen/code_dest_txv_text_size"
    android:textColor="@android:color/black"
    android:textStyle="bold" />

<com.rey.material.widget.Button
    android:id="@+id/sRetryBtn"
    android:layout_width="@dimen/action_btn_width"
    android:layout_height="@dimen/action_btn_height"
    android:text="@string/retry"
    android:textColor="@android:color/white"
    android:background="@drawable/ripple_drawable"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:visibility="gone" />

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipeRefreshLlt"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/completedSurveysRcV"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="@dimen/surveys_rcv_margin_top" />

</android.support.v4.widget.SwipeRefreshLayout>

<ImageView
    android:id="@+id/noSurveysImv"
    android:layout_width="@dimen/no_surveys_imv_width"
    android:layout_height="@dimen/no_surveys_imv_height"
    android:src="@drawable/no_surveys"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="@dimen/no_surveys_imv_margin_top"
    android:visibility="gone"
    android:contentDescription="@string/ongoing" />

<com.rey.material.widget.TextView
    android:id="@+id/noSurveysTxv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/noSurveysImv"
    android:text="@string/no_completed"
    android:textSize="@dimen/no_surveys_txv_text_size"
    android:textColor="@color/no_surveys_txv_color"
    android:visibility="gone"
    android:layout_centerHorizontal="true" />

 </RelativeLayout>

将相应视图从可见视图转换为不可见视图的方法,反之亦然:

private void onErrorBackgroundView(int code) {
    listSurveysRlt.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.view_color));
    completedSurveysRcV.setVisibility(View.GONE); //RecyclerView
    codeDescTtv.setVisibility(View.VISIBLE); //TextView
    retryBtn.setVisibility(View.VISIBLE); //not clickable button 
    codeDescTtv.setText(getResources().getString(inputValidationCodes.get(code)));
}

1 个答案:

答案 0 :(得分:0)

经过一番挖掘后,我发现了这个奇怪的框架行为背后的原因。罪魁祸首是阻止ui点击的SwipeRefreshLayout,因此通过设置每次用户滑动屏幕并在连接可用时恢复可见性时此布局的可见性消失,解决了问题。如果有人知道为什么会在版本中发生这种情况&lt;棒棒糖,这将是非常有帮助的。