1
A
回答
0
我覺得沒有動態主題得到應用存在。 viewpager中的每個片段都有其主題,因爲它們的主題依賴於它們的主題。如果你想知道工具欄動畫是如何完成的,我可以建議一種方法,它會給你相同的結果。
Play商店佈局
<Toolbar>
<FrameLayout>
<RelativeLayout id="toolbarContainer">
</RelativeLayout>
<RelativeLayout id="revealContainer">
</RelativeLayout>
<TabLayout></TabLayout>
</FrameLayout>
</Toolbar>
<StoreView></StoreView><!-- This is where you see viewpager fragments -->
的過程將是:
- 你revealContainer裏面你OnPageChangeListener的使用onPageSelected開始Circular Reveal Animation。
- 在動畫結束時,您設置的背景爲toolbarContainer。
- 隱藏revealContainer
的代碼會是這個樣子
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
// new position of page
showRevealEffectForPage(position);
}
});
private void showRevealEffectForPage(int page) {
int color;
switch(page) {
case 0:
color = Color.parseColor("#fff"); //white
break;
default:
color = Color.parseColor("#000"); //black
break;
}
//set color before animation starts
revealContainer.setBackgroundColor(color);
int x = revealContainer.getRight();
int y = revealContainer.getBottom();
int startRadius = 0;
int endRadius = (int) Math.hypot(toolbarContainer.getWidth(), toolbarContainer.getHeight());
Animator anim = ViewAnimationUtils.createCircularReveal(revealContainer, x, y, startRadius, endRadius);
layoutButtons.setVisibility(View.VISIBLE);
// you can set animation listener here to check for when the animation ends by
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
//set the color of toolbarContainer
toolbarContainer.setBackgroundColor(color);
revealContainer.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
anim.start();
}
相關問題
- 1. 將主題設置爲片段
- 2. Android - Play Store不支持的設備
- 3. 如何在Play Store設置中顯示片段* over *製表符設置?
- 4. 設置兩個字段爲主鍵
- 5. 設置了兩個標題?
- 6. 如何爲App Store和主屏幕設置不同的圖標?
- 7. Android - 不適用於片段的主題
- 8. Android設置片段
- 9. Android Google Play Services Without Play Store
- 10. Android設置片段工具欄標題
- 11. 爲什麼Android主題不影響片段內的元素?
- 12. 設置ActionBarSherlock的主題爲Android應用
- 13. 如何從同一個Eclipse項目創建兩個不同的應用程序(Play Store/Amazon Store)?
- 14. 爲使用相同表單的兩個不同頁面設置了兩個不同的標籤 - symfony
- 15. Android - 設置片段ID
- 16. 如何從片段調用兩個不同的片段
- 17. Android從另一個片段設置Textview
- 18. 如何在同一活動中爲不同的片段設置不同的MenuItem?
- 19. Android比較兩個片段
- 20. Android:合併兩個片段
- 21. 主題不設置
- 22. Android INSTALL_REFERRER和Google Play Store
- 23. 未設置Android主題
- 24. 爲片段設置背景?
- 25. 如何在工具欄中爲不同的片段設置不同的菜單?
- 26. 如何爲NavigationDrawer活動的不同片段設置不同的onBackPressed()?
- 27. 爲什麼cookie.domain設置了兩個cookie?
- 28. 爲Android中的所有editTexts設置一個統一的主題
- 29. 在Android中設置對話框主題爲父主題
- 30. 將不同的JSON密鑰設置爲字段的值Play框架
謝謝您的回答@codekidX – antia
我不認爲它只是主題化的元素。如果是這樣,主要顏色不會改變,但當您打開「最近」屏幕時,Playstore的標題欄顏色與您選項卡的顏色相同,這隻能表示主要顏色真的在變化。我不知道它是如何做的,但我也在尋找答案 –
@LuccasClezar我認爲setTheme(R.style.YourTheme); _ [在其中colorPrimary不同] _被調用。這可能是在選項卡更改後設置的。 – codekidX