답변

0

(Theme.material.light.NoactionBar 내 응용 프로그램의 전체 테마를 변경하지 않고) 내가 실행 바 흰색 어둡고하지로 부동의 배경 및 텍스트 색상을 사용자 정의하는 방법입니다 이것을 시도하십시오 :

fab.setBackgroundTintList(ColorStateList.valueOf(ContextComp‌​at.getColor(getActiv‌​ity(), R.color.yellow))); 
+0

팹 무엇을 사용하여 작업 클래스의 배경을 변경할 수 있습니까? 어디에서 어떻게 찾을 수 있습니까? styles.xml에서이 작업을 수행 할 수 있습니까? – loki

1

나는 그것을 할 수 없다고 생각합니다. 오랫동안 안드로이드 소스 코드로 파고 난 툴바는 안드로이드 내부 클래스와 구현을 발견했습니다 com.android.internal.widget.FloatingToolbar.FloatingToolbarPopup. = 배경 "ATTR/floatingToolbarPopupBackgroundDrawable?"을 :

팝업 컨테이너는 com.android.internal.R.layout.floating_popup_container이 배경 안드로이드를 사용라는 이름의 레이아웃에서 팽창된다.

xml 스타일에서 floatingToolbarPopupBackgroundDrawable 속성을 설정하는 것 같습니다.

그러나 당신은 자바 반사

@Override 
public void onActionModeStarted(ActionMode mode) 
{ 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
    { 
     try 
     { 
      Field field = mode.getClass().getDeclaredField("mFloatingToolbar"); 
      field.setAccessible(true); 
      Object mFloatingToolbar = field.get(mode); 
      field = mFloatingToolbar.getClass().getDeclaredField("mPopup"); 
      field.setAccessible(true); 
      Object mPopup = field.get(mFloatingToolbar); 
      field = mPopup.getClass().getDeclaredField("mContentContainer"); 
      field.setAccessible(true); 
      ViewGroup mContentContainer = (ViewGroup)field.get(mPopup); 
      mContentContainer.setBackgroundColor(Color.RED); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
    super.onActionModeStarted(mode); 
}