本文将分享android–无法在导航抽屉的ActionBar中更改应用程序图标旁边的向上插入符号的详细内容,此外,我们还将为大家带来关于AndroidActionBar/工具栏消失在我的应用程序中、A
本文将分享android – 无法在导航抽屉的ActionBar中更改应用程序图标旁边的向上插入符号的详细内容,此外,我们还将为大家带来关于Android ActionBar /工具栏消失在我的应用程序中、Android NavigationView 导航抽屉的使用、Android UI ActionBar功能-Action Bar 左上角的向上或返回按钮、android – ActionBarCompat – 应用程序图标操作(点击)不能在4.0设备上工作的相关知识,希望对你有所帮助。
本文目录一览:- android – 无法在导航抽屉的ActionBar中更改应用程序图标旁边的向上插入符号
- Android ActionBar /工具栏消失在我的应用程序中
- Android NavigationView 导航抽屉的使用
- Android UI ActionBar功能-Action Bar 左上角的向上或返回按钮
- android – ActionBarCompat – 应用程序图标操作(点击)不能在4.0设备上工作
android – 无法在导航抽屉的ActionBar中更改应用程序图标旁边的向上插入符号
public class MainActivity extends SherlockFragmentActivity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.drawer); mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,GravityCompat.START); mDrawerList.setAdapter(new ArrayAdapter<String>(this,R.layout.drawer_list_item,mPlanetTitles)); mDrawerList.setonItemClickListener(new DrawerItemClickListener()); mDrawerToggle = new ActionBarDrawerToggle(this,/* host Activity */ mDrawerLayout,/* DrawerLayout object */ R.drawable.ic_drawer,/* nav drawer image to replace 'Up' caret */ R.string.drawer_open,/* "open drawer" description for accessibility */ R.string.drawer_close /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { getSupportActionBar().setTitle(mTitle); supportInvalidateOptionsMenu(); } public void onDrawerOpened(View drawerView) { getSupportActionBar().setTitle(mDrawerTitle); supportInvalidateOptionsMenu(); } }; getSupportActionBar().setdisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { selectItem(0); } new Thread(new Runnable() { @Override public void run() { prefs = getPreferences(MODE_PRIVATE); opened = prefs.getBoolean(OPENED_KEY,false); if(opened == false) { mDrawerLayout.openDrawer(mDrawerList); } } }).start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.main,menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onPrepareOptionsMenu(Menu menu) { boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); menu.findItem(R.id.action_websearch).setVisible(!drawerOpen); return super.onPrepareOptionsMenu(menu); } @Override public boolean onoptionsItemSelected(final MenuItem item) { if (mDrawerToggle.onoptionsItemSelected(getMenuItem(item))) { return true; } switch (item.getItemId()) { case R.id.action_websearch: Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,getSupportActionBar().getTitle()); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } else { Toast.makeText(this,R.string.app_not_available,Toast.LENGTH_LONG).show(); } return true; default: return super.onoptionsItemSelected(item); } } private android.view.MenuItem getMenuItem(final MenuItem item) { return new android.view.MenuItem() { @Override public int getItemId() { return item.getItemId(); } public boolean isEnabled() { return true; } @Override public boolean collapseActionView() { return false; } @Override public boolean expandActionView() { return false; } @Override public ActionProvider getActionProvider() { return null; } @Override public View getActionView() { return null; } @Override public char getAlphabeticShortcut() { return 0; } @Override public int getGroupId() { return 0; } @Override public Drawable getIcon() { return null; } @Override public Intent getIntent() { return null; } @Override public ContextMenuInfo getMenuInfo() { return null; } @Override public char getNumericShortcut() { return 0; } @Override public int getorder() { return 0; } @Override public SubMenu getSubMenu() { return null; } @Override public CharSequence getTitle() { return null; } @Override public CharSequence getTitleCondensed() { return null; } @Override public boolean hasSubMenu() { return false; } @Override public boolean isActionViewExpanded() { return false; } @Override public boolean isCheckable() { return false; } @Override public boolean isChecked() { return false; } @Override public boolean isVisible() { return false; } @Override public android.view.MenuItem setActionProvider(ActionProvider actionProvider) { return null; } @Override public android.view.MenuItem setActionView(View view) { return null; } @Override public android.view.MenuItem setActionView(int resId) { return null; } @Override public android.view.MenuItem setAlphabeticShortcut(char alphaChar) { return null; } @Override public android.view.MenuItem setCheckable(boolean checkable) { return null; } @Override public android.view.MenuItem setChecked(boolean checked) { return null; } @Override public android.view.MenuItem setEnabled(boolean enabled) { return null; } @Override public android.view.MenuItem setIcon(Drawable icon) { return null; } @Override public android.view.MenuItem setIcon(int iconRes) { return null; } @Override public android.view.MenuItem setIntent(Intent intent) { return null; } @Override public android.view.MenuItem setNumericShortcut(char numericChar) { return null; } @Override public android.view.MenuItem setonActionExpandListener(OnActionExpandListener listener) { return null; } @Override public android.view.MenuItem setonMenuItemClickListener(OnMenuItemClickListener menuItemClickListener) { return null; } @Override public android.view.MenuItem setShortcut(char numericChar,char alphaChar) { return null; } @Override public void setShowAsAction(int actionEnum) { } @Override public android.view.MenuItem setShowAsActionFlags(int actionEnum) { return null; } @Override public android.view.MenuItem setTitle(CharSequence title) { return null; } @Override public android.view.MenuItem setTitle(int title) { return null; } @Override public android.view.MenuItem setTitleCondensed(CharSequence title) { return null; } @Override public android.view.MenuItem setVisible(boolean visible) { return null; } }; } /* The click listner for ListView in the navigation drawer */ private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent,View view,int position,long id) { selectItem(position); } } private void selectItem(int position) { // update the main content by replacing fragments Fragment fragment = new PlanetFragment(); Bundle args = new Bundle(); args.putInt(PlanetFragment.ARG_PLANET_NUMBER,position); fragment.setArguments(args); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).commit(); // update selected item and title,then close the drawer mDrawerList.setItemChecked(position,true); setTitle(mPlanetTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } @Override public void setTitle(CharSequence title) { mTitle = title; getSupportActionBar().setTitle(mTitle); } /** * When using the ActionBarDrawerToggle,you must call it during * onPostCreate() and onConfigurationChanged()... */ @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Pass any configuration change to the drawer toggls mDrawerToggle.onConfigurationChanged(newConfig); } /** * Fragment that appears in the "content_frame",shows a planet */ public static class PlanetFragment extends SherlockFragment { public static final String ARG_PLANET_NUMBER = "planet_number"; public PlanetFragment() { // Empty constructor required for fragment subclasses } @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_planet,container,false); int i = getArguments().getInt(ARG_PLANET_NUMBER); String planet = getResources().getStringArray(R.array.planets_array)[i]; // change int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()),"drawable",getActivity().getPackageName()); int imageId = getResources().getIdentifier("tempmap",getActivity().getPackageName()); // change ((ImageView) rootView.findViewById(R.id.image)).setimageResource(imageId); ((ImageView) rootView.findViewById(R.id.image)).setimageResource(imageId); // change getActivity().setTitle(planet); getActivity().setTitle("MapView"); return rootView; } } }
解决方法
<item name="homeAsUpIndicator">@drawable/ic_drawer</item> <item name="android:homeAsUpIndicator">@drawable/ic_drawer</item>
在你的活动主题中.我更喜欢在我的应用程序中使用另一个库.
ic_drawer可以从这里下载:
http://developer.android.com/training/implementing-navigation/nav-drawer.html
Android ActionBar /工具栏消失在我的应用程序中
所以我有一个应用程序.目前有3个活动…我正在用意图从另一个活动中启动活动
MainActivity > ChallongeLogin > ChallongeEvents
在我的MainActivity和ChallongeLogin中,应用程序顶部有一个大栏,列出了我的应用程序名称.但是,当我最终阅读ChallongeEvents时,该条消失了……我不记得做任何特别的事情使该条消失了.为什么消失了?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.testing.testingapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:screenorientation="portrait"
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:screenorientation="portrait"
android:name=".ChallongeLogin" />
<activity
android:screenorientation="portrait"
android:name=".ChallongeEvents" />
</application>
</manifest>
解决方法:
根据您的要求,您必须扩展AppCompatActivity而不是Activity.
public class ActivityName extends AppCompatActivity {
// ...
}
AppCompatActivity is from the appcompat-v7 library. Principally, this
offers a backport of the action bar. Since the native action bar was
added in API Level 11, you do not need AppCompatActivity for that.
However, current versions of appcompat-v7 also add a limited backport
of the Material Design aesthetic, in terms of the action bar and
varIoUs widgets. There are pros and cons of using appcompat-v7, well
beyond the scope of this specific Stack Overflow answer.
参考
07001
Android NavigationView 导航抽屉的使用
1.抽屉布局(drawerlayout)
activity_main.xml中的总体布局设置为drawerlayout
2.拖入NavigationView组件(在container中)
3.给NavigationView组件设置头部布局
<1>在app--->src--->main-->res-->layout中新建NavigationView组件headlayout对应的head_layout.xml布局文件
<2>在activity_main.xml文件中添加head_layout.xml的对应关系
app:headerLayout="@layout/head_layout"
4.给NavigationView组件添加菜单
<1>app--->src--->main--->res,选中res,右击new--->android resource file
<2>设置抽屉组件在屏幕的左侧
android:layout_gravity="left"
<3>在activity_main.xml文件中添加menu_navi.xml的对应关系
app:menu="@menu/menu_navi"
<4>navigation总体xml代码设置
<android.support.design.widget.NavigationView android:id="@+id/navi" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="left" app:headerLayout="@layout/head_layout" app:menu="@menu/menu_navi" />
5.java后台代码
public class MainActivity extends AppCompatActivity { NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); navigationView=findViewById(R.id.navi); //天坑:navigation一定要初始化 navigationView.setItemIconTintList(null); //设置navigationView菜单的图标 View view=navigationView.getHeaderView(0); //获取抽屉的头部 ImageView imageView=view.findViewById(R.id.imageView); //获取头部的图片组件 imageView.setonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"您选择的是头部组件",Toast.LENGTH_SHORT).show(); } }); final TextView textView=view.findViewById(R.id.textView3); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { textView.setText("您选择的是:"+menuItem.getTitle().toString()); return true; } }); } }
Android UI ActionBar功能-Action Bar 左上角的向上或返回按钮
ActionBar在左上角还提供了一个向上或返回的按钮,默认情况下是隐藏的需要在代码中开启:
官方文档:http://wear.techbrood.com/training/basics/actionbar/adding-buttons.html#UpNav
向上功能:
先打开功能选项,设置ActionBar的DisplayHomeAsUpEnabled=true:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
添加一个Activity为ParentActivity 同时新建ParentActivity的布局文件:
public class ParentActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.parent_activity);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="parent activity">
</TextView>
</LinearLayout>
然后在AndroidManifest.xml文件中配置向上功能:
详细请查看上方的官方说明文档;
返回功能:
先打开功能选项,设置ActionBar的DisplayHomeAsUpEnabled=true:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
android – ActionBarCompat – 应用程序图标操作(点击)不能在4.0设备上工作
任何输入都非常感谢!
解决方法
由于许多活动不使用操作栏主页按钮,因此在Android 4.0上运行的API 14应用程序中,默认情况下禁用. (这样,用户不要尝试按它,看到它发光,并想知道为什么没有发生.)想要使用这个应用程序应该调用ActionBar#setHomeButtonEnabled(true)
.
我们应该修改ActionBarCompat样本,使之更清楚.让您开始运行的一个简单方法是修改ActionBarHelperICS.java并添加以下内容:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity.getActionBar().setHomeButtonEnabled(true); }
在一个应用程序中,您需要更多的控制来打开和关闭此功能,您将需要进行进一步的更改.
今天关于android – 无法在导航抽屉的ActionBar中更改应用程序图标旁边的向上插入符号的介绍到此结束,谢谢您的阅读,有关Android ActionBar /工具栏消失在我的应用程序中、Android NavigationView 导航抽屉的使用、Android UI ActionBar功能-Action Bar 左上角的向上或返回按钮、android – ActionBarCompat – 应用程序图标操作(点击)不能在4.0设备上工作等更多相关知识的信息可以在本站进行查询。
本文标签: