我想用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 –