android - Android 选项菜单是白色的
问题描述
面临我的选项菜单保持白色的问题。我查看了文档,并不能真正看到我做错了什么。很高兴看到我的代码的另一个观点。谢谢。问题是创建的菜单完全是白色的,文本通常是黑色的。但是,我可以单击菜单选项并且它可以正常工作。
这是一个屏幕截图:
main_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/log_out_btn"
android:title="Log out" />
<item
android:id="@+id/settings_btn"
android:title="Account settings" />
<item
android:id="@+id/all_users_btn"
android:title="All users" />
</menu>
我的主要活动:
package com.david.MyCampusChat;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.app.DownloadManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.devin.MyCampusChat.Fragments.ChatsFragment;
import com.devin.MyCampusChat.Fragments.FriendsFragment;
import com.devin.MyCampusChat.Fragments.RequestsFragment;
import com.google.android.material.tabs.TabLayout;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private FirebaseAuth fAuth;
private FirebaseUser fUser;
private Toolbar mToolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
//Fragments.
private ChatsFragment chatsFragment;
private FriendsFragment friendsFragment;
private RequestsFragment requestsFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = findViewById(R.id.tab_layout);
viewPager = findViewById(R.id.view_pager);
fAuth = FirebaseAuth.getInstance();
mToolbar = findViewById(R.id.toolbar);
//fragments
chatsFragment = new ChatsFragment();
friendsFragment = new FriendsFragment();
requestsFragment = new RequestsFragment();
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("MyCampus Chats");
tabLayout.setupWithViewPager(viewPager);
ViewPagerAdapter viewPagerAdapter = new MainActivity.ViewPagerAdapter(getSupportFragmentManager(), 0);
viewPagerAdapter.addFragment(chatsFragment, "Chats");
viewPagerAdapter.addFragment(friendsFragment, "Friends");
viewPagerAdapter.addFragment(requestsFragment, "Requests");
viewPager.setAdapter(viewPagerAdapter);
}
@Override
public void onStart() {
super.onStart();
fUser = fAuth.getCurrentUser();
//Check to see if the current user is null or not, if so, they are not logged in.
if(fUser == null){
Intent startIntent = new Intent(MainActivity.this, StartActivity.class);
startActivity(startIntent);
finish();
}
}
/** Creates the options menu **/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
/** Gets the options selected from the menu resource **/
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()) {
case R.id.log_out_btn:
fAuth.signOut();
sendToStart();
break;
case R.id.all_users_btn:
case R.id.settings_btn:
}
return true;
}
/** Simply sends the user to the startActivity (state not logged in) **/
private void sendToStart(){
Intent intent = new Intent(MainActivity.this, StartActivity.class);
startActivity(intent);
finish();
}
public class ViewPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments = new ArrayList<>();
private List<String> fragmentTitles = new ArrayList<>();
public ViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
public void addFragment(Fragment fragment, String title){
mFragments.add(fragment);
fragmentTitles.add(title);
}
@NonNull
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitles.get(position);
}
}
}
谢谢
解决方案
将以下行添加到您的主题中styles.xml
:
<item name="android:actionMenuTextColor">@color/your_color</item>
your_color -> 无论您选择什么颜色color.xml
推荐阅读
- neural-network - 在解码过程中为词汇表外的单词使用 UNK 标记有什么意义?
- php - 插入mysql(数据库)时的空白条目
- python - 值错误:无法将字符串转换为浮点数
- json - 将具有名称和值的 JSON 转换为 TSV?
- machine-learning - 我使用 MLP 制作国际象棋引擎的方法有什么问题?
- windows - 让 Google Course Builder 从 Windows 7 部署
- c# - 如何从 cosmos 数据库中删除容器中的所有项目?
- python - tensorflow:结合 to_categorical() 与 Datasets 和 map()
- rust - 哪个对堆分配点的引用是正确的?
- java - 当在 for each 循环中找不到值时,无法找出 println 语句