2013-05-11 125 views
3

bringToFront工作一次後,它不再有效。爲什麼? 當你點擊一次它將視圖放在前面,但是當你嘗試恢復視圖時,它不再起作用。觸摸/點擊一直很好。爲什麼bringToFront只工作一次

View view1,view2,view3,view4; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //sets the Bundle 

    //code to initiate and putting the views in layout 
    view1= findViewById(R.id.button1); 
    view2= findViewById(R.id.button2); 

    view1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Log.i("onClick","1"); 
      view1.bringToFront(); 
      view1.invalidate(); 
      view2.invalidate(); 
     } 
    });  
    view2.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Log.i("onClick","2"); 
      view2.bringToFront(); 
      view1.invalidate(); 
      view2.invalidate(); 
     } 
    }); 
}  

這是XML

<RelativeLayout 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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 


    <TextView 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:layout_marginLeft="30dp" 
     android:text="Button2ButtonButton" 
     android:textColor="#00ff00" 
     android:textSize="60dp" /> 

    <TextView 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:layout_marginLeft="170dp" 
     android:text="Button1ButtonButton" 
     android:textColor="#ff0000" 
     android:textSize="60dp" /> 

</RelativeLayout> 
+0

你想做什麼?單擊時隱藏另一個按鈕? – 2013-05-11 23:59:52

+0

這只是一個測試,它不起作用。 – Chris 2013-05-12 00:05:24

+1

我想我解決了。我必須將所有內容放在一個圖層中並使其無效 – Chris 2013-05-12 00:05:40

回答

2

我想我解決了。我不得不將所有東西都放在一個圖層中,並使其無效。

+7

請在您的答案中填寫更多詳細信息,以便將來的SO成員可以閱讀並獲得確切的修復。 – Siddharth 2013-05-14 04:07:18

+0

你的意思是你把兩個按鈕放在另一個嵌套的RelativeLayout中? – 2014-02-06 13:03:33

0

你必須把對其他頂部的意見,得到這個工作..

如..

公共類MainActivity擴展活動{

RelativeLayout rl1,rl2; 
Button b1,b2; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //rl1=(RelativeLayout)findViewById(R.id.rl1); 
    //rl2=(RelativeLayout)findViewById(R.id.rl2); 

    b1=(Button)findViewById(R.id.b1); 
    b2=(Button)findViewById(R.id.b2); 

    b1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      b2.bringToFront(); 
      b1.invalidate(); 
      b2.invalidate(); 
      Toast.makeText(getApplicationContext(),"b1",1).show(); 
     } 
    }); 
    b2.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      b1.bringToFront(); 
      b1.invalidate(); 
      b2.invalidate(); 
      Toast.makeText(getApplicationContext(),"b2",1).show(); 
     } 
    }); 

} 

和XML是。 ...

<RelativeLayout 
    android:id="@+id/rl1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    > 
    <Button 
     android:id="@+id/b1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button1" 
     android:layout_alignParentLeft="true" 
     /> 

    <Button 
     android:id="@+id/b2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="Button2" /> 

</RelativeLayout> 

其中兩個按鈕都是一個在另一個之上,當您單擊一次然後它會給相關的烤麪包和第二次點擊給出第二麪包等等...

0

我發現無效是不夠帶來正面(API 17有時不帶來,API 15每次OK)

0

我已能夠對此進行分類

if (android.os.Build.VERSION.SDK_INT >= 21) //Lollipop 
{ 
    view.setZ(2); 

    for (int i = 0; i < view.getParent().getChildCount(); i++) 
    { 
     if(view != view.getParent().getChildAt(i)) 
     { 
      view.getParent().getChildAt(i).SetZ(1); 
     } 
    } 
} 

view.bringToFront(); 
for (int i = 0; i < view.getParent().getChildCount(); i++) 
{ 
    view.getParent().getChildAt(i).invalidate(); 
} 
view.getParent().requestLayout(); 
view.getParent().invalidate(); 
相關問題