마시맬로에서 우리는 사본/과거 (감사합니다 하나님)에 대한 최고의 액션 바를 타고 우리는 떠 다니는 액션 바를 가지고 있습니다. 내 문제는 지금떠 다니는 ActionBar의 배경을 사용자 정의하는 방법은 무엇입니까?
1
A
답변
0
(Theme.material.light.NoactionBar 내 응용 프로그램의 전체 테마를 변경하지 않고) 내가 실행 바 흰색 어둡고하지로 부동의 배경 및 텍스트 색상을 사용자 정의하는 방법입니다 이것을 시도하십시오 :
fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getActivity(), R.color.yellow)));
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);
}
팹 무엇을 사용하여 작업 클래스의 배경을 변경할 수 있습니까? 어디에서 어떻게 찾을 수 있습니까? styles.xml에서이 작업을 수행 할 수 있습니까? – loki