2017-03-18 11 views
12

Używam nowego Androida BottomNavigationView, ale widok akcji z dołu nawigacji MenuItem nie wyświetla się.Dlaczego Android BottomNavigationView nie wyświetla się?

Po debugowaniu stwierdziłem, że pozycja menu nie jest pusta i widoczność jest widoczna.

Po sprawdzeniu wysokości i szerokości widoku głównego nadchodzi 0, nawet po zakodowaniu danych w układzie layout_width=50dp i layout_height=50dp elementu głównego.

Oto mój dole menu nawigacji:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<item 
    android:id="@+id/nearby_fragment" 
    android:enabled="true" 
    android:icon="@drawable/homenearbyfragment" 
    android:title="@string/bottom_nearby" 
    app:showAsAction="always"/> 

<item 
    android:id="@+id/route_fragment" 
    android:title="@string/bottom_homescreen" 
    android:enabled="true" 
    app:showAsAction="always" 
    android:icon="@drawable/home_mycommute" /> 

<item 
    android:id="@+id/newsfeed_activity" 
    android:title="@string/bottom_news" 
    android:enabled="true" 
    app:showAsAction="always" 
    android:icon="@drawable/newsfeed" 
    app:actionLayout="@layout/bagde_layout"/> 

</menu> 

Mój układ działanie:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
style="?android:attr/actionButtonStyle" 
android:layout_width="50dp" 
android:layout_height="50dp" 
android:clickable="true" 
android:focusable="true" 
android:gravity="center"> 

<ImageView 
    android:id="@+id/menu_badge_icon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/newsfeed" /> 

<TextView 
    android:id="@+id/menu_badge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="top|end" 
    android:layout_marginTop="4dp" 
    android:background="@drawable/circle_bg" 
    android:gravity="center" 
    android:textColor="@android:color/white" 
    android:textSize="8sp" 
    /> 

W moim Activity Próbuję ustawić:

private void setCountOnNews(Menu menu) { 
    mReportMenu = menu.findItem(R.id.newsfeed_activity); 
    FrameLayout count = (FrameLayout) mReportMenu.getActionView(); 
    count.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(MainActivity.this, NewsFeedActivity.class); 
      startActivity(intent); 
      MainApplication.getInstance().trackScreenView(getString(R.string.tracknewsfeedmenu)); 
     } 
    }); 
    TextView notifCount = (TextView) count.findViewById(R.id.menu_badge); 
    //if (Utils.getNewsfeedCountPreference(MainActivity.this) > 0) 
    notifCount.setText(String.valueOf(Utils.getNewsfeedCountPreference(MainActivity.this))); 
    notifCount.setText("asd;jfnapsdifnaspdifnasdpifnaspdfnapsdifnaspidfnapsidfnaspdiufif"); 
    Log.d(TAG, "setCountOnNews:" + notifCount.getText().toString()); 
    //else 
    // notifCount.setVisibility(View.GONE); 
} 
+0

Czy możesz zamieścić to jako projekt na github? – azizbekian

+0

Czy możesz opublikować kod układu Activity xml? –

+0

@ user007 Czy możesz przesłać zrzut ekranu z aktualnym stanem? – FAT

Odpowiedz

-1

jeśli używasz fragmentu niż musisz ustawić ma menu opcji prawda.

setHasOptionsMenu(true);

0

Zapomniałeś dodać, że w swojej MainActivity?

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
Powiązane problemy