2014-03-31 77 views
1

我有1佈局,這是在我的項目中的所有3個選項卡(片段)中很常見。所以我所做的是我爲該共同結構創建了單獨的佈局,並將佈局包含在所有碎片佈局中。佈局基本上有4個按鈕,點擊這些按鈕後,我將更改按鈕的背景顏色並相應地顯示數據。包括佈局Android - 導致與按鈕背景顏色問題

This is the 1st tab in which its coming perfect.

This is the second tab where all the buttons are getting the blue color.

代碼: -

@Override 
    public View onCreateView(final LayoutInflater inflater, 
      final ViewGroup container, final Bundle savedInstanceState) { 
     final View rootView = inflater.inflate(R.layout.fragment, 
       container, false); 
     mLvIncomingCalls = (ListView) rootView.findViewById(R.id.lv); 

     mBtnDay = (Button) rootView.findViewById(R.id.btnDay); 
     mBtnWeek = (Button) rootView.findViewById(R.id.btnWeek); 
     mBtnMonth = (Button) rootView.findViewById(R.id.btnMonth); 
     mBtnAllTime = (Button) rootView.findViewById(R.id.btnAllTime); 

     mBtnDay.setOnClickListener(btnDayClickListener); 
     mBtnWeek.setOnClickListener(btnWeekClickListener); 
     mBtnMonth.setOnClickListener(btnMonthClickListener); 
     mBtnAllTime.setOnClickListener(btnAllTimeClickListener); 

     mBtnDay.setBackgroundColor(getResources().getColor(
       android.R.color.holo_blue_light)); 

     return rootView; 
    } 

現在所看到的快照,問題是,在默認情況下,第二個選項卡所有的按鈕獲取藍色。我沒有得到爲什麼它獲得所有按鈕的藍色,因爲在所有片段中,我添加了上面的代碼,默認情況下,該按鈕的顏色只會變成藍色。

我是否需要爲所有人創建單獨的佈局?

任何人有任何想法請親切指導我。

+0

你試過選擇器作爲按鈕的背景可繪製嗎? – Niko

+0

不,我沒有嘗試過選擇器,因爲對於所有按鈕,我必須創建不同的選擇器。所以我認爲最好從代碼方面處理它。當有人點擊按鈕時,我會將其顏色更改爲藍色,其餘部分將變爲灰色。 – Scorpion

+1

你如何確保onCreateView中的其他按鈕是灰色的? – Niko

回答

1

in onCreateView您可以將其他按鈕顏色設置爲灰色。這樣它肯定不會發生。它發生的原因是一個謎,我相信系統以某種方式錯誤地回收Drawable

1

將onTabChangedListener

mTabHost.setOnTabChangedListener(new OnTabChangeListener() { 

     @Override 
     public void onTabChanged(String tabId) { 
      // TODO Auto-generated method stub 
      if (tabId.equals("first")) { 
       // here you can set "setBackgroundColor" 
      }else if (tabId.equals("second")) { 
      ...... 
      ...... 
     } 
    } 
} 

我認爲這將有所幫助。
謝謝。

+1

如果我以這種方式實現它,那麼它每次都會設置默認值。我不認爲它會起作用。但是,謝謝你的建議。 – Scorpion