FrameLayout内容顺序

时间:2013-10-31 21:32:32

标签: android xml

我正在学习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顺序,它就可以工作,我真的不明白为什么它不应该这样工作。

提前谢谢你们

2 个答案:

答案 0 :(得分:0)

尝试添加:

android:visibility="gone"

到其中一个ImageView的XML。

答案 1 :(得分: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的可见性无关,因为我对它们赋予了什么价值并不重要它不会在第一种方式工作但我将以第二种方式工作。

看起来像一个奇怪的问题,因为如果你将它们设置为可见或消失,那么图像视图的oder应该无关紧要......