[英]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.. 您能否按照以下步骤操作,让我知道..
Remove visibility code from xml file
. 从xml file
删除可见性代码。 Put below code after setContentview
. 将以下代码放在after setContentview
。 imageView.setVisibility(View.INVISIBLE);
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 gone
与visibility 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.