我正在开始一个使用AppCompat/ActionBarCompatin v7支持库的新项目.我试图找出如何getSupportActionBar在片段中使用from.我承载片段的活动扩展了ActionBarActivity,但我没有看到片段的类似支持类.
从我的片段中
public class CrimeFragment extends Fragment {
//...
getActivity().getSupportActionBar().setSubtitle(R.string.subtitle); // getSupportActionBar is not defined in the v4 version of Fragment
//...
}
Run Code Online (Sandbox Code Playgroud)
使用它的谷歌页面(http://android-developers.blogspot.in/2013/08/actionbarcompat-and-io-2013-app-source.html)表示v4片段应该没有变化.我是否需要将所有getActivity()电话投入ActionBarActivity?这似乎是糟糕的设计.
android android-fragments android-support-library android-actionbar-compat
使用Android Studio菜单选项Refactor - > Refactor to Androidx迁移到Androidx软件包后...
我收到以下错误:
Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Run Code Online (Sandbox Code Playgroud) 我在运行时得到这个nullPointerException:
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'
mainActivity中的代码:
package com.example.vasilis.spangreek;
import android.app.ActionBar;
import android.app.Activity;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ExpandableListView;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import adapter.ExpandableListViewAdapter;
import model.NavDrawerItem;
public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ExpandableListView mExpandableListView;
private ActionBarDrawerToggle mActionBarDrawerToggle;
//nav drawer Title
private CharSequence mDrawerTitle;
//used to store app titles
private CharSequence mTitles;
//slide menu items
private String[] navMenuItems;
private …Run Code Online (Sandbox Code Playgroud) 我正在研究当前Android应用程序中优秀的Mapbox库.
我试图整合这个问题时遇到过这个问题PlacePickerActivity.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.hide()' on a null object reference
at com.mapbox.mapboxsdk.plugins.places.picker.ui.PlacePickerActivity.onCreate(PlacePickerActivity.java:65)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
Run Code Online (Sandbox Code Playgroud)
我的应用程序风格如下: -
<resources>
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我使用的版本是: -
// MAPBOX
implementation "com.mapbox.mapboxsdk:mapbox-android-sdk:$mapBoxSdkVersion"
implementation "com.mapbox.mapboxsdk:mapbox-android-plugin-traffic:$mapBoxTrafficVersion"
implementation "com.mapbox.mapboxsdk:mapbox-android-plugin-places:$mapBoxPlacesVersion"
mapBoxSdkVersion = "6.8.1"
mapBoxTrafficVersion = "0.6.0"
mapBoxPlacesVersion = "0.6.0"
Run Code Online (Sandbox Code Playgroud)
我配置我的工具栏如下: -
/**
* @param toolbar
*/
private void manageToolbar(final Toolbar toolbar) {
mToolbar …Run Code Online (Sandbox Code Playgroud)