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

时间:2017-04-30 00:05:14

标签: android imageview android-imageview visibility

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您可以按照以下步骤告诉我们。

  1. String path ="C:\...ecc..."; String fileName= "01"; File file = new File(path+fileName) if(file.exists()){ // stuff with file } 删除可见性代码。放在代码xml file下面。 after setContentview

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

  3. 这对你有用。它有效,因为imageView.setVisibility(View.VISIBLE);visibility gone

    之间存在差异

    visibility invisible:此视图不可见,并且没有任何空间用于布局目的。

    View.GONE:此视图不可见,但仍会占用空间以进行布局。