我是Android开发的新手,我有一个问题,即尝试使用按钮将图像视图的可见性设置为不可见或可见,当可见性从可见变为不可见时,它会起作用,但它不会尝试从隐形回到可见时设置工作,这是我的代码:
XML:
<ImageView
android:src="@drawable/diagram_img"
android:id="@+id/ImgDiagram"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="320dp"
android:layout_height="50dp"
android:gravity="right"
android:layout_centerHorizontal="true"
android:textSize="40sp"
android:text=""
android:id="@+id/ViewInput1" />
<TextView
android:layout_width="320dp"
android:layout_height="50dp"
android:gravity="right"
android:text=""
android:layout_centerHorizontal="true"
android:textSize="40sp"
android:layout_marginTop="50dp"
android:id="@+id/ViewInput2" />
可见度函数:
if (id == R.id.action_diagram) {
if(triangleDiagram.getVisibility() == View.INVISIBLE) {
triangleDiagram.setVisibility(View.VISIBLE);
}
if(triangleDiagram.getVisibility() == View.VISIBLE) {
triangleDiagram.setVisibility(View.INVISIBLE);
}
return true;
}
答案 0 :(得分:0)
它应该是else-if语句。为什么?如果您有两个ifs,第一个将状态更改为可见,并且满足其他条件(可见),因此不可见代码正在执行
if (id == R.id.action_diagram) {
if(triangleDiagram.getVisibility() == View.INVISIBLE) {
triangleDiagram.setVisibility(View.VISIBLE);
}
else if(triangleDiagram.getVisibility() == View.VISIBLE) {
triangleDiagram.setVisibility(View.INVISIBLE);
}
return true;
}
你知道,如果图表不可见(错误的代码如下):
if(triangleDiagram.getVisibility() == View.INVISIBLE) { // evaluates to true
triangleDiagram.setVisibility(View.VISIBLE); // changes to visible
}
if(triangleDiagram.getVisibility() == View.VISIBLE) { // diagram is visible so evaluates to true
triangleDiagram.setVisibility(View.INVISIBLE); // diagram is going invisible
}
答案 1 :(得分:0)
更改
if (id == R.id.action_diagram) {
if(triangleDiagram.getVisibility() == View.INVISIBLE) {
triangleDiagram.setVisibility(View.VISIBLE);
}
if(triangleDiagram.getVisibility() == View.VISIBLE) {
triangleDiagram.setVisibility(View.INVISIBLE);
}
return true;
}
到
if (id == R.id.action_diagram) {
if(triangleDiagram.getVisibility() == View.INVISIBLE) {
triangleDiagram.setVisibility(View.VISIBLE);
}
else if(triangleDiagram.getVisibility() == View.VISIBLE) {
triangleDiagram.setVisibility(View.INVISIBLE);
}
return true;
}
因为代码的问题是视图设置为可见,然后它执行下一个if循环,其中视图再次变为不可见。