Android imageView的setVisibility(View.VISIBLE)不工作

Android imageView的setVisibility(View.VISIBLE)不工作,android,imageview,android-imageview,visibility,Android,Imageview,Android Imageview,Visibility,我已将imageView的可见性设置为默认状态 现在,我想让它在以下(我的代码)条件变为真时可见。我已经检查了该条件是否变为真,我的代码setVisibility(View.visible)也会执行,但我的UI上没有任何更改 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { addBottomDots(position);

我已将imageView的可见性设置为默认状态

现在,我想让它在以下(我的代码)条件变为真时可见。我已经检查了该条件是否变为真,我的代码setVisibility(View.visible)也会执行,但我的UI上没有任何更改

@Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        addBottomDots(position);
        if(position == layouts.length-1){
            imageView.setVisibility(View.VISIBLE);
            imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    startActivity(new Intent(MainActivity.this,AlarmActivity.class));
                }
            });
        }
    }
我的ImageView的XML

 <ImageView
    android:id="@+id/startImageView"
    android:layout_width="80dp"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:visibility="gone"
    app:srcCompat="@drawable/starthere" />


问题:执行我的代码后,可见性没有改变意味着它仍然不可见

问题是,您没有使用UI线程:

Activity act = (Activity)context;
act.runOnUiThread(new Runnable(){
@Override
public void run() {
-----
    imageView.setVisibility(View.VISIBLE);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,AlarmActivity.class));
            }
        });  
-----
} });

问题是,您没有使用UI线程:

Activity act = (Activity)context;
act.runOnUiThread(new Runnable(){
@Override
public void run() {
-----
    imageView.setVisibility(View.VISIBLE);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,AlarmActivity.class));
            }
        });  
-----
} });

你能按照下面的步骤告诉我吗

  • xml文件中删除可见性代码
    。将下面的代码
    放在setContentview之后
    imageView.setVisibility(View.INVISIBLE)

  • 现在,如果您想再次看到
    图像视图
    ,请将下面的代码放入
    单击侦听器

    imageView.setVisibility(View.VISIBLE)

  • 这应该对你有用。它之所以有效,是因为
    可见性消失
    可见性不可见

    View.GONE
    :此视图不可见,并且不占用任何空间用于布局


    视图。不可见
    :此视图不可见,但仍会占用版面空间。

    您能否按照以下步骤进行操作并通知我

  • xml文件中删除可见性代码
    。将下面的代码
    放在setContentview之后
    imageView.setVisibility(View.INVISIBLE)

  • 现在,如果您想再次看到
    图像视图
    ,请将下面的代码放入
    单击侦听器

    imageView.setVisibility(View.VISIBLE)

  • 这应该对你有用。它之所以有效,是因为
    可见性消失
    可见性不可见

    View.GONE
    :此视图不可见,并且不占用任何空间用于布局


    视图。不可见
    :此视图不可见,但仍会占用版面空间。

    如果单击它,onClick方法会调用吗?@SeanStayn如果它(图像视图)对我不可见,我如何检查它单击侦听器不是问题,我将管理它。您可以将可见性设置为在XML中可见。它只用于测试,不管代码是否执行。此外,您还可以从XML中删除可见性行,并将代码更改为“imageView.setVisibility(View.GONE)”。您可以检查问题是在您的方法中还是在其他地方。@SeanStayn我刚刚在我的活动的setContentView之后调用了imageView.setVisibility(View.VISIBLE),但也有同样的问题。请参阅更多代码的要点,如果单击它,可能会突出显示任何缺点,onClick方法会调用吗?@SeanStayn如果它(图像视图)对我不可见,我如何检查它单击侦听器不是问题,我将管理它。您可以将可见性设置为在XML中可见。它只用于测试,不管代码是否执行。此外,您还可以从XML中删除可见性行,并将代码更改为“imageView.setVisibility(View.GONE)”。您可以检查问题是在您的方法中还是在其他地方。@SeanStayn我刚刚在我的活动的setContentView之后调用了imageView.setVisibility(View.VISIBLE),但也有同样的问题,这可能会突出任何缺点