1

我正在学习 Android,我正在尝试包含 ImageViews 的 FrameLayout,我尝试做一个小应用程序,当您单击它们时在两个图像之间切换代码如下:

我的 xml 看起来像这样:

>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Hola" >

 <ImageView
        android:id="@+id/segunda"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodosegunda"
        android:scaleType="fitCenter"
        android:src="@drawable/img1" />

 <ImageView
        android:id="@+id/primera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodoprimera"
        android:scaleType="fitCenter"
        android:src="@drawable/img2" />

</FrameLayout>

还有我的主程序:

public class Hola extends Activity {
ImageView primera;
ImageView segunda;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.teta_layout);
    primera = (ImageView) findViewById(R.id.primera); 
    segunda = (ImageView) findViewById(R.id.segunda); 

}


public void metodoprimera (View view){ 
    primera.setVisibility(View.GONE); 
    segunda.setVisibility(View.VISIBLE);


} 

public void metodosegunda (View view){ 

    segunda.setVisibility(View.GONE); 
    primera.setVisibility(View.VISIBLE);

}
}

这个程序应该显示一个图像,一旦你点击它,它应该隐藏那个图像并显示另一个等等。

问题是这不起作用,但是一旦我在 xml 中切换 imageview 顺序,它就起作用了,我真的不明白为什么它不应该以这种方式工作。

提前谢谢你们

4

2 回答 2

0

我将尝试更明确地解释,事情是这样的:

如果我有这样的 XML,它将显示图像(取决于可见性),但 oClick 将不起作用:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Hola" >

    <ImageView
        android:id="@+id/segunda"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodosegunda"
        android:scaleType="fitCenter"
        android:src="@drawable/img1"
        android:visibility="gone" />

        <ImageView
        android:id="@+id/primera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodoprimera"
        android:scaleType="fitCenter"
        android:src="@drawable/img2"
        android:visibility="visible" />        

</FrameLayout>

如果我在 XML 中交换 ImageView 的顺序,它将完美地工作:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Hola" >
    <ImageView
        android:id="@+id/primera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodoprimera"
        android:scaleType="fitCenter"
        android:src="@drawable/img2"
        android:visibility="visible" />
    <ImageView
        android:id="@+id/segunda"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="metodosegunda"
        android:scaleType="fitCenter"
        android:src="@drawable/img1"
        android:visibility="gone" />     

</FrameLayout>

这与每个 Imageview 的可见性无关,因为我对它们赋予的价值并不重要它不会以第一种方式工作,但我会以第二种方式工作。

似乎是一个奇怪的问题,因为如果您将它们设置为可见或消失,图像视图的顺序应该无关紧要......

于 2013-11-01T09:29:59.150 回答
0

尝试添加:

android:visibility="gone"

到 ImageView 之一的 XML。

于 2013-10-31T21:42:32.487 回答