4

Я использую грунт BottikeBar 2.0: https://github.com/roughike/BottomBar/Как показать закусочную выше Bottombar?

Когда я показываю SnackBar, он отображается на самом нижнем баре.

Я хочу, чтобы это было нарисовано над BottomBar.

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_activity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/here" 
     android:background="#fff"> 

     <FrameLayout 
      android:id="@+id/contentContainer" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_above="@+id/bottomBar"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:text="Three Buttons Bar" 
       android:id="@+id/textView" 
       android:layout_centerVertical="true" 
       android:layout_centerHorizontal="true" 
       android:textColor="@color/colorPrimary" 
       android:textSize="35sp" /> 

     </FrameLayout> 

     <com.roughike.bottombar.BottomBar 
      android:id="@+id/bottomBar" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:layout_alignParentBottom="true" 
      app:bb_tabXmlResource="@xml/bottombar_tabs" /> 
    </RelativeLayout> 

</android.support.design.widget.CoordinatorLayout> 

MainActivity.java:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar); 
     bottomBar.setOnTabSelectListener(new OnTabSelectListener() { 
      @Override 
      public void onTabSelected(int tabId) { 
       switch (tabId) { 
        case R.id.recent_item: 
         Snackbar.make(findViewById(R.id.main_activity), "Recent Item Selected", Snackbar.LENGTH_LONG).show(); 
         break; 
        case R.id.favorite_item: 
         Snackbar.make(findViewById(R.id.main_activity), "Favorite Item Selected", Snackbar.LENGTH_LONG).show(); 
         break; 
        case R.id.location_item: 
         Snackbar.make(findViewById(R.id.main_activity), "Location Item Selected", Snackbar.LENGTH_LONG).show(); 
         break; 
       } 
      } 
     }); 
    } 
} 

Скриншоты:

BottomBar Only BottomBar hidden when SnackBar appears

Неправильно ли с файлом макета?
Что мне не хватает?

Я также проверил это: Move snackbar above the bottom bar, но это не помогло ..

EDIT:

Я попытался as Abtin said:

Snackbar.make(bottomBar, "Location Item Selected", Snackbar.LENGTH_LONG).show(); 

и

<com.roughike.bottombar.BottomBar 
      android:id="@+id/bottomBar" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:layout_alignParentBottom="true" 
      app:bb_tabXmlResource="@xml/bottombar_tabs" 
      app:bb_behavior="underNavbar"/> 

Теперь это стало похоже на thi s:

Bottom Bar with extra space below That space filled by Snackbar

Как вы можете видеть, что есть это неиспользуемое пространство под BottomBar, когда я установил app:bb_behavior="underNavbar", который я не хочу ..

ответ

0

попробуйте изменить вид, который вы передаете в закусочной ,

Snackbar.make(findViewById(R.id.contentContainer), "Recent Item Selected", Snackbar.LENGTH_LONG).show();  
+0

Я пробовал, но это не помогло :( –

0

В зависимости от того, как реализуется поведение макета координатор вы, возможно, придется пройти сам вид снизу бар на первом аргументе Snackbar.make().

Snackbar.make(bottomBar, "Location Item Selected", Snackbar.LENGTH_LONG).show(); 

Другая возможность состоит в том, что вам не хватает атрибута для app:bb_behavior на bottombar виджета в макете.

+0

Отредактированный вопрос .. Pls проверить, что –

0

я перешел из Roughike's BottomBar 2.0 в Roughike's BottomBar 1.4 ..

Теперь он работает как задумано (конечно изменения кода) ..

Я также попытался AHBottomNavigation, это круто, а также работает как задумано ..

Я не помечают это как ответ, так как он не дает ответа на вопрос;)

+0

Как вы заставить его работать с AHBottomNavigation? Я использую его тоже, но закусочная не показывает над ним, но перед ним :( – hildegard

1

Вы должны создать CoordinatorLayout в XML, от его дна, который вы хотите, будет показано закусочной и дать идентификатор CoordinatorLayout, как id of View на забаве. сделайте из SnackBar.

<android.support.design.widget.CoordinatorLayout 
     android:id="@+id/viewSnack" 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="50dp"/> 

Snackbar.make(findViewById(R.id.viewSnack), "Text of the SnackBar", Snackbar.LENGTH_LONG).show(); 
Смежные вопросы