从View.GONE状态到View.VISIBLE的setVisibility无法正常工作

时间:2017-02-01 21:15:26

标签: java android

我有一个真正奇怪的问题,我不知道如何解决它。 我在LinearLayout中有一个View,其属性为android:visibility =" gone" 这是布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/bg"
    android:orientation="vertical">

    <TextView
        android:id="@+id/titleTextView"
        android:gravity="end"
        android:text="dfgdfg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:paddingTop="5dp"
        android:paddingBottom="5dp"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="8dp"
        android:background="@drawable/shadow"
        android:id="@+id/preLollipopShadow"
        android:visibility="gone"/>

</LinearLayout>

当我想用preLollipopShadow更改视图的可见性时,我使用此代码

if (newPosition == StickyHeaderLayoutManager.HeaderPosition.STICKY) {
                        ((ViewGroup)header).getChildAt(1).setVisibility(View.VISIBLE);

                    }
                    else
                    {
                        ((ViewGroup)header).getChildAt(1).setVisibility(View.GONE);

                    }

它没有像我期望的那样工作,我希望这个阴影在粘性模式下可见,否则就会消失。

我怎样才能做到这一点?

更新1: 当我从可见性开始&#34;隐形&#34;并切换到&#34;可见&#34;然后它正在工作,但没有开始状态&#34;去了&#34;在我的preLollipopShadow视图上。

更新2: 视图位于RecyclerView内部,是否更新了与嵌套到RecyclerView相关的视图可见性?

1 个答案:

答案 0 :(得分:1)

您要隐藏和显示的视图附加了一个 id 的preLollipopShadow。很容易找到它的id。

parentView.findViewById(R.id.preLollipopShadow);

findViewById(R.id.preLollipopShadow);

如果您想引用活动中的视图。