如何创建类似于instagram的底部导航栏
我是一个Android新手,试图为我的新Android应用创建一个底部导航栏,类似于Instagram中的那个。像这样点击搜索图标在操作栏中添加一个搜索栏。 我正在构建一个提醒用户有关他的医疗约会的应用程序,该应用程序底部有三个导航选项卡。在这之后,我一直创建到此
卡住了。我是否应该使用三项活动来显示相应选项卡或片段的内容,以及如何实现该功能。如何创建类似于instagram的底部导航栏
我需要一个recyclerview
来显示约会。如何仅在点击底部的搜索图标时显示搜索栏。 已经搜索了很多关于实现这一点,但找不到有用的东西。
对于代码或库的任何建议达到相同的将是很大的帮助,谢谢。
我应该使用三个
activities
显示的内容相应的tabs
或fragments
,我该如何做到这一点?
当然你应该使用Fragment
为每个底部导航Item/Tab
。像FragmentHome
,FragmentSearch
和FragmentSettings
。
要改变Fragment
,添加NavigationItemSelectedListener
您BottomNavigationView
和更改Fragment
按MenuItem
选择:
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.bottom_navigation_view);
bottomNavigationView.setOnNavigationItemSelectedListener
(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.action_item1:
selectedFragment = FragmentHome.newInstance();
break;
case R.id.action_item2:
selectedFragment = FragmentSearch.newInstance();
break;
case R.id.action_item3:
selectedFragment = FragmentSettings.newInstance();
break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, selectedFragment);
transaction.commit();
return true;
}
});
这里是一个教程的:BottomNavigationView with multiple Fragments
我需要一个
recyclerview
显示约会
在您的布局XML
中,添加RecyclerView
以显示约会列表。在您的Fragment
课程中,初始化RecyclerView
并创建ArrayList<Appointment>
并将此list
传递给您的Adapter
以显示RecyclerView
行项目。
这里是一个教程的:How to use RecyclerView in Fragment
我怎样才能显示
search bar
点击在底部 的search
图标只有当?
您可以按照您的片段更改以编程方式从ToolBar/ActionBar
中显示/隐藏选项。
在你FragmentSearch
,做更改下方显示Searchbar
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragmet_search, parent, false);
return v;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.your_search_menu_xml, menu);
super.onCreateOptionsMenu(menu, inflater);
}
下面是一些有用的链接:
- Android Toolbar Adding Menu Items for different fragments
- Hide/Show Action Bar Option Menu Item for different fragments
- Adding ActionBar Items From Within Your Fragments
希望这将有助于了解情况。
@ FAT非常感谢:)找到这真的很有用 – yogeshmanjhi
最受欢迎。如果我的答案似乎有用,我希望你也会赞不绝口。谢谢〜 – FAT
@ FAT upvoted并接受,作为一个答案,谢谢很多:) – yogeshmanjhi
你把你的底导航的活动,并与任何你想要填补它,那么你用这个
bottomNavigationView.setOnNavigationItemSelectedListener(this);
要添加一个项目选择收听。您还实现所需的方法在你的活动这样
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.action_home:
//open home fragment
break;
case R.id.action_search:
//open search or whatever
break;
}
return true;
}
现在就看你做任何你想要选择一些项目时,例如当搜索项目中选择可以显示搜索部分和其他时隐藏项目被选中。
@ Alireza我应该使用三个活动或使用三个单独的片段来显示每个标签的详细信息 – yogeshmanjhi
@ Alireza我已经实现了您建议的代码只是想知道哪一个我应该用旁边来显示细节片段或activities.Thanks – yogeshmanjhi
片段!您使用包含底部导航和包含片段的框架布局的活动,然后我们用户单击某个选项卡以在该容器中显示片段。 – Reza
如果你想要一个BottomBar here's one的库。 您必须通过单击该底栏项目来控制SearchBar的可见性。如果你正在尝试实现你自己的搜索栏然后看看这个链接link1link2
@ Nikhya感谢链接。我应该使用三个片段或三个活动来显示标签的细节 – yogeshmanjhi
使用三个片段与查看传呼机,这样你会看起来像WhatsApp/Instagram。由于ViewPager,您可以滑动thos片段。你可以更多的查看ViewPager – MrCurious
@ Nikhya谢谢很多希望这会有所帮助 – yogeshmanjhi
标签的概念是,你必须有一个MainActivity,它将处理让我们说3个片段。使用@Alireza建议的代码,您将处理碎片之间的更改。请查看如何实现Tabs(like this one here)的教程。之后,在您的“SearchFragment.java”中,您将根据您的搜索栏以及下面的回收站视图或您希望的任何内容来相应地构建XML。建议:使用片段时,一定要有Context mContext = getActivity();首先定义,因为它会更容易实现所有功能。
*为您实现底部的标签效果,你可以移动 android.support.design.widget.TabLayout 到屏幕底部
@ Razvan非常感谢你的建议将尝试这个 – yogeshmanjhi
看来你并不真正了解Android开发中的很多基本概念。我建议你按照Android开发的适当教程学习基础知识,然后自己尝试。那时你应该知道如何使用片段,标签和动态显示/隐藏搜索栏。 – paradite