将按钮从相对布局更改为线性布局奇怪的副作用

时间:2012-08-06 16:21:45

标签: android xml multithreading layout

今天发生在我身上最奇怪的事情,造成了数小时的挫折和愤怒管理问题。

我有一个有效的Android幻灯片应用程序。但是,我对按钮(在相对布局中)感到不满意,并将它们移动到线性布局。但是,在运行我的应用程序时,按钮的行为被交换(即按钮1执行按钮2的工作,反之亦然)。我能够通过更改其中一个按钮的ID来解决这个问题,而不是所有按钮(不起作用)。与此相关的是,当我切换方向时,我的应用程序开始崩溃。以前当我有相对布局时它曾经工作过。 (我正在使用Handler来更改幻灯片的UI)

我无法解决这个问题,所以我恢复了我的相对布局,但我想知道这首先是怎么发生的。

有效的布局:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >



    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:contentDescription="@string/imageView"
        android:scaleType="centerInside"
        android:src="@drawable/image1" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textAppearance="?android:attr/textAppearanceMedium" />



        <ImageButton
            android:id="@+id/startStop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:contentDescription="@string/startStop"
            android:src="@drawable/ic_menu_slideshow" />

        <ImageButton
            android:id="@+id/next"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="false"
            android:layout_toRightOf="@+id/startStop"
            android:contentDescription="@string/next"
            android:src="@drawable/ic_media_next" />

        <ImageButton
            android:id="@+id/previous"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="false"
            android:layout_toLeftOf="@+id/startStop"
            android:contentDescription="@string/previous"
            android:src="@drawable/ic_media_previous" />

</RelativeLayout>

导致问题的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >



<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_centerInParent="true"
    android:contentDescription="@string/imageView"
    android:scaleType="centerInside"
    android:src="@drawable/image1" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="#30eee9e9" >

            <ImageButton
        android:id="@+id/previous"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/previous"
        android:src="@drawable/ic_media_previous" />

    <ImageButton
        android:id="@+id/bla"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/startStop"
        android:src="@drawable/ic_menu_slideshow" />

    <ImageButton
        android:id="@+id/next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/next"
        android:src="@drawable/ic_media_next" />

1 个答案:

答案 0 :(得分:-2)

我遇到了同样的问题,但是相对布局是父母&amp;线性布局作为子布局我采用了四个图像按钮

  • PLAY
  • SCORE
  • 帮助
  • QUIT

并且按钮功能被转移到下面的一个,即当我按下PLAY时没有发生任何事情,当按下SCORE游戏开始播放时点击HELP显示我得分等等...我整整一夜解决问题但没有发生任何事情我关了关于水坝的东西试图看电影,但有一段时间我正在看着它我再次启动Eclipse和它工作得很好的魔力。不知道但是重建&amp;干净已经解决了我的问题,因为DeeV说