有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java工具栏内容未显示,尽管出现了片段内容

我试图在我的工具栏中显示必要的内容(即标题和后退按钮),但由于某种原因,它没有出现,但我的片段中的主要内容却出现了。如何解决这个问题

映射活动。java

public class MapActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_map);

        SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)findViewById(R.id.imageView);
        imageView.setImage(ImageSource.resource(R.drawable.map));
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        if (item.getItemId() == 安卓.R.id.home) {
            final Intent intent = NavUtils.getParentActivityIntent(this);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            NavUtils.navigateUpTo(this, intent);
            return true;
        }
        return false;
    }
}

碎片地图。java

public class FragmentMap extends 安卓.support.v4.app.Fragment {

    public FragmentMap() {
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View v =  inflater.inflate(R.layout.fragment_map, container, false);


        Toolbar toolbar = (Toolbar) v.findViewById(R.id.actionBar);
        toolbar.setBackgroundColor(Color.parseColor("#212121"));

        AppCompatActivity activity = (AppCompatActivity) getActivity();
        activity.setSupportActionBar(toolbar);
        activity.getSupportActionBar().setTitle(Html.fromHtml("<font color='#FFFFFF'>" + getResources().getString(R.string.map) + "</font>"));
        activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        activity.getSupportActionBar().setDisplayShowHomeEnabled(false);


        return v;
    }
}

片段映射。xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
    安卓:layout_width="match_parent"
    安卓:layout_height="match_parent"
    安卓:orientation="vertical"
    安卓:id="@+id/fragmentmap" >

    <安卓.support.v7.widget.Toolbar
        xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
        xmlns:app="http://schemas.安卓.com/apk/res-auto"
        安卓:id="@+id/actionBar"
        安卓:elevation="4dp"
        安卓:layout_width="match_parent"
        安卓:layout_height="wrap_content"
        app:contentInsetEnd="0dp"
        app:contentInsetStart="16dp" >
    </安卓.support.v7.widget.Toolbar>

    <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
        安卓:id="@+id/imageView"
        安卓:layout_width="match_parent"
        安卓:layout_height="match_parent"/>

</LinearLayout>

风格。xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    </style>
</resources>

enter image description here


共 (2) 个答案

  1. # 1 楼答案

    完整代码

    地图活动

    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    
    
    public class MapActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map);
            Toolbar toolbar = (Toolbar) findViewById(R.id.actionBar);
            if (toolbar != null) {
                setSupportActionBar(toolbar);
                toolbar.setBackgroundColor(Color.parseColor("#212121"));
                getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                getSupportActionBar().setDisplayShowHomeEnabled(false);
            }
    
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new MapActivityFragment())
                    .commit();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menu_map, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
            switch (id) {
                case android.R.id.home:
                    super. onBackPressed();
                    return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    

    活动地图。xml

    <?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"
        android:background="@color/whiteColor"
        android:id="@+id/fragmentmap" >
    
        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/actionBar"
            android:elevation="4dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentInsetEnd="0dp"
            app:contentInsetStart="16dp" >
        </android.support.v7.widget.Toolbar>
    
        <LinearLayout
            android:id="@+id/container"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
    

    风格。xml

    <style name="AppThemeNew" parent="Theme.AppCompat.NoActionBar">
        </style>
    

    MapActivityFragment。爪哇

    import android.support.v4.app.Fragment;
    import android.os.Bundle;
    import android.text.Html;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    
    /**
     * A placeholder fragment containing a simple view.
     */
    public class MapActivityFragment extends Fragment {
    
        public MapActivityFragment() {
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView =  inflater.inflate(R.layout.fragment_map, container, false);
            getActivity().setTitle(Html.fromHtml("<font color='#FFFFFF'>" + "Hello Toolbar" + "</font>"));
            return rootView;
    
        }
    }
    

    碎片图。xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="@color/whiteColor"
        android:paddingBottom="@dimen/activity_vertical_margin">
    
        <TextView android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/blackColor"/>
    
    </RelativeLayout>
    
  2. # 2 楼答案

    添加此项

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View v =  inflater.inflate(R.layout.fragment_map, container, false);
    
    
        Toolbar toolbar = (Toolbar) v.findViewById(R.id.actionBar);
        toolbar.setBackgroundColor(Color.parseColor("#212121"));
    
        //   changes  -
        ((MapActivity) getActivity()).setTitle(Html.fromHtml("<font color='#FFFFFF'>" + getResources().getString(R.string.map) + "</font>"));
        ((MapActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        ((MapActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(false);
    
    
        return v;
    }