2013-03-28 61 views
0

我有兩個TextViews在我的Activity(我們稱之爲TV1和TV2),兩者都屬於不同的RelativeLayouts。我創建了一個TranslateAnimation將TV1從其位置移動到TV2的位置。問題是,當TV1達到TV2的RelativeLayout,它就會在它(移動TextView由TV2的佈局重疊),我想TV1是這個佈局上面。有什麼方法可以把它放在前面?Android翻譯動畫:移動視圖重疊

謝謝!

[編輯]

我添加了我的佈局代碼。我想timeText移動到numTimeValue。如您所見,timeText在numTimeValue之後聲明。此外,我試過這個:

mTimeTextView.bringToFront(); 
((View)mTimeTextView.getParent()).bringToFront(); 

它仍然重疊。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/outer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:baselineAligned="false" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:id="@+id/pointsLayout" 
      style="@style/ScoreBar" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:baselineAligned="false" 
      android:orientation="horizontal" > 

      <LinearLayout 
       android:id="@+id/numCorrectLayout" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/numCorrectTitle" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:text="@string/num_correct_title" 
        android:textSize="16sp" /> 

       <TextView 
        android:id="@+id/numGuessed" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:textSize="22sp" /> 
      </LinearLayout> 

      <LinearLayout 
       android:id="@+id/numTimeLayout" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/numTimeTitle" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:text="@string/num_time_title" 
        android:textSize="16sp" /> 

       <TextView 
        android:id="@+id/numTimeValue" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:textSize="22sp" /> 
      </LinearLayout> 
     </LinearLayout> 

     <RelativeLayout 
      android:id="@+id/timeLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ProgressBar 
       android:id="@+id/time_progbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="10dp" 
       android:layout_toLeftOf="@+id/timeText" 
       android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal" 
       android:indeterminateOnly="false" 
       android:maxHeight="20dip" 
       android:minHeight="20dip" 
       android:padding="15dp" 
       android:progressDrawable="@drawable/time_progressbar" /> 

      <TextView 
       android:id="@+id/timeText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="5dp" 
       android:textSize="30sp" /> 
     </RelativeLayout> 
    </LinearLayout> 

    <ImageView 
     android:id="@+id/movieImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/header" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="30dp" 
     android:contentDescription="@string/movie_to_guess" /> 
</RelativeLayout> 

[EDIT2]

簡化版本:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/game_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/pointsLayout" 
     style="@style/ScoreBar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:baselineAligned="false" 
     android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/numTimeValue" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:textSize="22sp" /> 
     <!-- </LinearLayout> --> 
    </LinearLayout> 

    <RelativeLayout 
     android:id="@+id/timeLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/pointsLayout" 
     android:orientation="horizontal" > 

     <ProgressBar 
      android:id="@+id/time_progbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="10dp" 
      android:layout_toLeftOf="@+id/timeText" 
      android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal" 
      android:indeterminateOnly="false" 
      android:maxHeight="20dip" 
      android:minHeight="20dip" 
      android:padding="15dp" 
      android:progressDrawable="@drawable/time_progressbar" /> 

     <TextView 
      android:id="@+id/timeText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="5dp" 
      android:textSize="30sp" /> 
    </RelativeLayout> 

    <ImageView 
     android:id="@+id/movieImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/timeLayout" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="30dp" 
     android:contentDescription="@string/movie_to_guess" /> 
</RelativeLayout> 
+0

這可能是由於第2個TextView的下一日的佈局的佈局。 你可以在前面2次移動佈局或隱藏第二個佈局時,第一次談到佈局上它的位置 –

回答

1

這可能是相關的z順序,即垂直疊加,所述respecive佈局元素。有兩種解決方案:

(1)Change the z-order in your java code所以要對頂視圖移動到前面。在你的情況下,你會想要將包含你想要的TextView的整個相對佈局移到前面。僅移動文本視圖本身將不起作用。

(2)Control the z-order within the xml。默認情況下,在XML文件中進一步向下添加的視圖將在z順序中更高。嘗試交換相對佈局的位置,看看它是否工作。

+0

我編輯我的職務,以增加我的佈局。我嘗試了兩件事,但它仍然是一樣的。也許我做錯了什麼? –

+0

您的內部RelativeLayout嵌套在LinearLayout id =標頭中。我認爲這是你遇到問題的地方。您可能需要解開這些佈局以使其按照您想要的方式工作。只要看看你是XML我不明白你爲什麼需要所有這些獨立嵌套的LinearLayout字段 - 看起來你可以更有效地使用一個或兩個相對佈局。然後你會確定你將正確的佈局移到了前面。 – Rarw

+0

我添加了「標題」LinearLayout以避免使用android:layout_below,因爲我認爲這可能與我的問題有關。我使用簡化版本編輯了我的帖子,情況依然如此。 –

0

嘗試使用機器人:在你的XML升高。

對於TV1,提供機器人:海拔= 「1DP」

對於TV2,提供機器人:海拔= 「0dp」