我需要在我的 android 应用程序中实现底部导航视图。中间的图标需要是图像,即公司徽标。但是当我运行该应用程序时,它只出现一个灰色填充的圆形图标。上面的图片显示了我想要的和我得到的。
我已经在这个网站上尝试过其他问题,但是每个答案都告诉我们使用可绘制对象更改 XML 中的 iconTintList,但中心图标是一个具有多种颜色的矢量。
当我尝试将 null 设置为 setIconTintList 方法时,适用于中间图标,但其他图标也会更改为原始颜色。
//This doesn't work to other icons, only for the middle one
mBottomNav.setItemIconTintList(null);
Run Code Online (Sandbox Code Playgroud)
我还尝试获取菜单并仅为中间的设置图标色调列表,就像上面的代码一样,但也不起作用。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mBottomNav.getMenu().findItem(R.id.nav_buy).setIconTintList(null);
}
Run Code Online (Sandbox Code Playgroud)
这是 XML 实现:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/kmv_background"
app:itemIconTint="@drawable/bottom_nav_item_color"
app:itemTextColor="@drawable/bottom_nav_item_color"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_navigation" />
Run Code Online (Sandbox Code Playgroud)
这是java实现:
mBottomNav = findViewById(R.id.bottomNavigationView);
mBottomNav.setOnNavigationItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我开始研究Android底部导航视图.但我面临一个问题.如果我向底部导航视图添加了5个项目,则只显示项目文本的选定项目.如果我添加3项,它工作正常.请告诉我如何显示所有5个项目的项目文本.先感谢您.
menu.xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.reloadapp.reload.activity.IconTabsActivity">
<item
android:id="@+id/action_favorites"
android:enabled="true"
android:icon="@drawable/home_40"
android:title="Home"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_schedules"
android:enabled="true"
android:icon="@drawable/profile_40"
android:title="Profile"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_music"
android:enabled="true"
android:icon="@drawable/reload_40"
android:title="Reload cash"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_musi"
android:enabled="true"
android:icon="@drawable/notifications"
android:title="Notifications"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_mus"
android:enabled="true"
android:icon="@drawable/menu_40"
android:title="More"
app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)
依赖:编译'com.android.support:appcompat-v7:25.0.1'compile'com.android.support:design:25.0.0'
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemBackground="@color/textColorPrimary"
app:menu="@menu/menu_icon_tabs"
app:itemIconTint="@color/colorPrimary"
app:itemTextColor="@color/colorPrimary"
android:layout_alignParentBottom="true">
</android.support.design.widget.BottomNavigationView>
Run Code Online (Sandbox Code Playgroud) android android-menu android-support-library android-bottom-nav-view
我有一个 Main Activity,它使用 TabSelectedListener 来显示 AHBottomNavigation 菜单的片段。名为“FirstFragment”的片段包含一个 FragmentPagerAdapter,它允许用户在两个选项卡之间滑动,每个选项卡都有自己的片段,称为 FirstTabInFirstFragmentFragment 和 SecondTabInFirstFragmentFragment(为简单起见重新命名)。
我的问题是:
一种)。启动 Main Activity 时,会选择“First”底部导航菜单项,但不会启动“FirstFragment”。因此,它以空白屏幕显示选择的正确项目。如果我再次点击菜单项,它只会启动第一个片段。
b)。一旦 FirstFragment 被正确启动并显示在屏幕上(通过 a 中的临时修复),如果我选择一个不同的菜单项(即导航到 SecondFragment)然后再次选择 FirstFragment 的菜单项,里面的两个选项卡它是空白的。此外,两个标签的片段之间的滑动不起作用并被“卡住”,因此您必须将其一直拉到一侧或一直拉到另一侧。
希望我已经清楚地解释了我的问题 - 如果我遗漏了什么,我可以提供更多细节。
请注意,我正在使用com.aurelhubert.ahbottomnavigation.AHBottomNavigation
以下是相关文件:
主活动.java :
public class MainActivity extends AppCompatActivity{
private AHBottomNavigationAdapter navigationAdapter;
private AHBottomNavigationViewPager viewPager;
private AHBottomNavigation bottomNavigation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Add menu items to bar
bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation);
this.createNavItems();
bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
@Override
public boolean onTabSelected(int position, boolean wasSelected) {
//show fragment
if (position==0) …Run Code Online (Sandbox Code Playgroud) android android-fragments bottomnavigationview android-bottomnav android-bottom-nav-view
我正在尝试使用底部导航视图在单击时打开另一个活动.出于某种原因,我在最后一行收到错误,应该定义点击功能.我在另一个项目上测试过,它运行得很好.
这是我的活动的结尾部分:
private BottomNavigationView.OnNavigationItemSelectedListener
mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
Intent kampIntent = new Intent(SortimentActivity.this, CampaignActivity.class);
startActivity(kampIntent);
mTextMessage.setText(R.string.title_home);
break;
case R.id.navigation_dashboard:
mTextMessage.setText(R.string.title_dashboard);
break;
}
return false;
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
Run Code Online (Sandbox Code Playgroud)
我在另一个项目中尝试了完全相同的代码,但它确实有效.我在这里得到的错误是
'无法解析符号'.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
关于这里出了什么问题的任何想法?