1

我是一个Android新手,试图为我的新Android应用创建一个底部导航栏,类似于Instagram中的那个。像这样instagram.jpg点击搜索图标在操作栏中添加一个搜索栏。 我正在构建一个提醒用户有关他的医疗约会的应用程序,该应用程序底部有三个导航选项卡。在这之后,我一直创建到此Screenshot_2017-06-04-11-59-56.png卡住了。我是否应该使用三项活动来显示相应选项卡或片段的内容,以及如何实现该功能。如何创建类似于instagram的底部导航栏

我需要一个recyclerview来显示约会。如何仅在点击底部的搜索图标时显示搜索栏。 已经搜索了很多关于实现这一点,但找不到有用的东西。

对于代码或库的任何建议达到相同的将是很大的帮助,谢谢。

+1

看来你并不真正了解Android开发中的很多基本概念。我建议你按照Android开发的适当教程学习基础知识,然后自己尝试。那时你应该知道如何使用片段,标签和动态显示/隐藏搜索栏。 – paradite

回答

4

我应该使用三个activities显示的内容相应的 tabsfragments,我该如何做到这一点?

当然你应该使用Fragment为每个底部导航Item/Tab。像FragmentHome,FragmentSearchFragmentSettings

要改变Fragment,添加NavigationItemSelectedListenerBottomNavigationView和更改FragmentMenuItem选择:

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); 
} 

下面是一些有用的链接:

  1. Android Toolbar Adding Menu Items for different fragments
  2. Hide/Show Action Bar Option Menu Item for different fragments
  3. Adding ActionBar Items From Within Your Fragments

希望这将有助于了解情况。

+1

@ FAT非常感谢:)找到这真的很有用 – yogeshmanjhi

+0

最受欢迎。如果我的答案似乎有用,我希望你也会赞不绝口。谢谢〜 – FAT

+1

@ FAT upvoted并接受,作为一个答案,谢谢很多:) – yogeshmanjhi

0

你把你的底导航的活动,并与任何你想要填补它,那么你用这个

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; 
} 

现在就看你做任何你想要选择一些项目时,例如当搜索项目中选择可以显示搜索部分和其他时隐藏项目被选中。

+0

@ Alireza我应该使用三个活动或使用三个单独的片段来显示每个标签的详细信息 – yogeshmanjhi

+0

@ Alireza我已经实现了您建议的代码只是想知道哪一个我应该用旁边来显示细节片段或activities.Thanks – yogeshmanjhi

+1

片段!您使用包含底部导航和包含片段的框架布局的活动,然后我们用户单击某个选项卡以在该容器中显示片段。 – Reza

0

如果你想要一个BottomBar here's one的库。 您必须通过单击该底栏项目来控制SearchBar的可见性。如果你正在尝试实现你自己的搜索栏然后看看这个链接link1link2

+0

@ Nikhya感谢链接。我应该使用三个片段或三个活动来显示标签的细节 – yogeshmanjhi

+0

使用三个片段与查看传呼机,这样你会看起来像WhatsApp/Instagram。由于ViewPager,您可以滑动thos片段。你可以更多的查看ViewPager – MrCurious

+0

@ Nikhya谢谢很多希望这会有所帮助 – yogeshmanjhi

0

标签的概念是,你必须有一个MainActivity,它将处理让我们说3个片段。使用@Alireza建议的代码,您将处理碎片之间的更改。请查看如何实现Tabs(like this one here)的教程。之后,在您的“SearchFragment.java”中,您将根据您的搜索栏以及下面的回收站视图或您希望的任何内容来相应地构建XML。建议:使用片段时,一定要有Context mContext = getActivity();首先定义,因为它会更容易实现所有功能。

*为您实现底部的标签效果,你可以移动 android.support.design.widget.TabLayout 到屏幕底部

+0

@ Razvan非常感谢你的建议将尝试这个 – yogeshmanjhi