2013-07-23 63 views
0

我有一個這樣的佈局:如何傳播重點父視圖

<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="wrap_content" 
    android:background="@drawable/border_selector" 
    android:orientation="vertical" 
    android:focusable="true" > 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:indeterminateDrawable="@drawable/custom_progress_bar" 
     android:visibility="gone" /> 

    <AutoCompleteTextView 
     android:id="@+id/autoComplete" 
     android:layout_width="fill_parent" 
     android:layout_height="48dp" 
     android:layout_alignParentLeft="true" 
     android:layout_toLeftOf="@id/progressBar1" 
     android:background="@android:color/transparent" 
     android:gravity="center_vertical" /> 

</RelativeLayout> 

其中border_selector是父佈局的selector。內層子女AutoCompleteTextView沒有任何背景或邊框。所以,在這個AutoCompleteTextView焦點上,我想讓父母也得到焦點,以便選擇器工作。

我想這(它沒有工作,即使它的工作原理,這不是一個很好的解決方案,我想。):

autoComplete.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 

      if(hasFocus){ 
       parent.requestFocus(); 
      }else{ 
       parent.clearFocus(); 
      } 
     } 
    }); 

回答

0

好像你正試圖使佈局似乎選擇時該觀點有重點。而不是使用選擇器以編程方式更改焦點時佈局的背景。

但你應該知道,這不是預期的行爲爲Android,你應該最有可能離開,因爲它是:)

編輯:

android:layout_toLeftOf="@id/progressBar1" 

刪除此行,這樣進度條會出現在textview中,請參閱此處以供參考:Putting progress bar inside edit text which will launch after user has entered something

+0

'不是預期的行爲'是的,但是我的佈局是在自動完成的右側顯示進度條(在獲取數據時顯示)以便它看起來像它自己內部的自動完成。 – user1537779

+0

,更有意義,回答編輯:) –

相關問題