简体   繁体   English

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

[英]setVisibility(View.VISIBLE) to imageView is not working

I have set the visibility of imageView as gone by default. 我已将imageView的可见性设置为默认消失。

Now, I want to make it visible when the the below(my code) condition goes true.I have checked that the condition goes true and my code setVisibility(View.VISIBLE) also executes but there is no any change on my UI. 现在,我想在以下条件(我的代码)变为true时使其可见。我已经检查条件是否成立,并且我的代码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));
                }
            });
        }
    }

XML of my ImageView 我的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 问题:执行代码后,可见性没有改变,意味着它仍然不可见

The problem is, that you don't use the UI Thread: 问题是,您没有使用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));
            }
        });  
-----
} });

Can you follow below steps and let me know.. 您能否按照以下步骤操作,让我知道..

  1. Remove visibility code from xml file . xml file删除可见性代码。 Put below code after setContentview . 将以下代码放在after setContentview imageView.setVisibility(View.INVISIBLE);

  2. Now if you want to visible the imageView again please put below code in your click listener . 现在,如果您想再次看到imageView ,请在click listener放置以下代码。
    imageView.setVisibility(View.VISIBLE);

This should work for you. 这应该为您工作。 It works because there is difference between visibility gone and visibility invisible 之所以有效,是因为visibility gonevisibility invisible之间存在差异

View.GONE : This view is invisible, and it doesn't take any space for layout purposes. View.GONE :此视图不可见,并且不占用任何空间用于布局。

View.INVISIBLE : This view is invisible, but it still takes up space for layout purposes. View.INVISIBLE :此视图是不可见的,但仍会占用空间以进行布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android setVisibility(View.Visible)不适用于布局 - Android setVisibility(View.Visible) not working on a layout setvisibility(view.oneible)在setvisibility之后无效(view.gone) - setvisibility(view.visible) not working after setvisibility(view.gone) 设置为不可见后,setVisibility(View.Visible)不起作用 - setVisibility(View.Visible) not working after setting to invisible 当元素不是LinearLayout中的最后一个元素时,setVisibility(View.VISIBLE)不起作用 - setVisibility(View.VISIBLE) not working when element is not the last in LinearLayout .setVisibility(View.VISIBLE)滞后于我的UI - .setVisibility(View.VISIBLE) lagging my UI 从 View.GONE 状态到 View.VISIBLE 的 setVisibility 无法正常工作 - setVisibility from View.GONE state to View.VISIBLE not working properly 在KITKAT中屏幕旋转后,Android setVisibility(View.VISIBLE)根本无法正常工作 - Android setVisibility(View.VISIBLE) not working at all after screen rotation in KITKAT 带自定义适配器的View.setVisibility(View.VISIBLE) - View.setVisibility(View.VISIBLE) with custom adapter View.setVisibility(View.VISIBLE) 在开始另一个活动后停止工作,前提是该视图之前在 Android API &lt;28 上不可见 - View.setVisibility(View.VISIBLE) stops working after after starting another activity only if that view was not visible before on Android API <28 Android setVisibility(View.VISIBLE)不显示组件 - Android setVisibility(View.VISIBLE) does not show the component
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM