首页 文章

setVisibility(View.VISIBLE)到imageView不起作用

提问于
浏览
1

我将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" />

Problem: After execution of my code the visibility is not changing means it remain invisible

2 回答

  • 1

    问题是,您不使用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));
                }
            });  
    -----
    } });
    
  • 2

    你能按照以下步骤告诉我吗?

    • xml file 删除可见性代码 . 放在下面的代码 after setContentview . imageView.setVisibility(View.INVISIBLE);

    • 现在,如果您想再次看到 imageView ,请将以下代码放在 click listener 中 .
      imageView.setVisibility(View.VISIBLE);

    这应该适合你 . 它有效,因为 visibility gonevisibility invisible 之间存在差异

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

    View.INVISIBLE :此视图不可见,但仍然占用了布局空间 .

相关问题