我想用snackbar
在應用程序的任何部分顯示消息。我的意思是當無線網絡被禁用, 應該有一個小吃店說無線網絡禁用。這是在應用程序的任何部分(任何片段或任何活動)確定的。 目前,我在subfragment
中確定了這一點,其中所有片段延伸subfragment
,我也在MainActivity
中使用它。 這工作正常。問題在於協調器佈局爲snackbar
。我如何在每個XML中給這個coordinator layout
? 什麼是最好的解決方案?xml的協調器佈局
1
A
回答
2
我認爲常見的方式是遍歷根視圖,並找到孩子是誰的CoordinatorLayout的情況下,代碼段可以是一擊:
public View getCoordinateLayout(Activity activity) {
ViewGroup vg = (ViewGroup) activity.findViewById(android.R.id.content);
ViewGroup root = (ViewGroup) vg.getChildAt(0);
int childCount = root.getChildCount();
for(int i=0;i<childCount;i++){
View view = root.getChildAt(i);
if(view instanceof CoordinatorLayout){
return view;
}
}
return null;
}
2
看起來好像您要爲所有其他佈局使用父級佈局結構。比方說,我們的母公司佈局文件名爲structure.xml
,它看起來是這樣的:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.CoordinatorLayout>
然後,當你創建你可以擡高你平時佈局的活動,說activity_main.xml
,像這樣:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.structure);
LayoutInflater.from(this).inflate(R.layout.activity_main, (FrameLayout) findViewById(R.id.container), false);
}
每當你創建你平常佈局的片段,說frag_main.xml
,你可以做這樣的:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) {
View view = inflater.inflate(R.layout.structure, group, false);
inflater.inflate(R.layout.frag_main, (FrameLayout) view.findViewById(R.id.container), false);
return view;
}
既然你ALR eady爲你的片段/活動獲得了一個父類,你應該能夠輕鬆地爲你的所有子類創建一些輔助方法。
希望這會有所幫助。
相關問題
- 1. 協調器佈局中的ExpandableListView
- 2. 協調器佈局中的工具欄
- 3. LinearLayout重疊支持協調器佈局
- 4. 相對佈局和協調器佈局之間的佈局問題
- 5. 嵌套協調器佈局和應用程序佈局
- 6. 無法使用協調器佈局以及約束佈局
- 7. 如何在協調器中垂直放置佈局佈局
- 8. ConstraintLayout vs協調員佈局?
- 9. 使用協調器佈局在LinearLayout底部添加布局的問題
- 10. Android協調佈局與視差標題線性佈局?
- 11. 谷歌地圖和協調佈局
- 12. 協調員佈局與回收+按鈕
- 13. 協調佈局和透明狀態欄
- 14. 搜索查看協調佈局
- 15. 頁腳表示協調佈局
- 16. Android - 協調器佈局中的滾動和底部表格
- 17. 額外的空間使用協調器佈局,而滾動
- 18. 使用與Firebase協調器佈局的ClassNotFoundException
- 19. 協調器佈局下方的空白位置
- 20. ViewPager在協調器佈局中的高度超過可用
- 21. 隱藏協調器佈局內的tablayout,這是外部活動
- 22. XML佈局編輯器
- 23. Android設計支持庫ViewPager片段與協調器佈局
- 24. 協調器佈局實現不起作用
- 25. 如何在協調器佈局中定位?
- 26. 通過協調器佈局刷卡進行recyclerview項目
- 27. 摺疊協調器佈局向上滾動25%
- 28. 如何防止RecyclerView在協調器佈局中展開
- 29. 如何實現離子協調器佈局滾動效果?
- 30. 工具欄不隱藏/顯示在滾動協調器佈局
我應該在哪裏添加此代碼? – MagdHo0506
將它添加到你的BaseActivity和BaseFragment中,你也可以使它成爲一個靜態方法,並在你想要顯示小吃店通過當前活動的地方調用它@MagdHo0506 –