非AppCompat项目中的工具栏不充气

问题描述:

我试图用我的活动实现我的工具栏,但它没有膨胀,并一直显示错误。我的项目不使用AppCompat,但我不确定这是否也是错误的原因。非AppCompat项目中的工具栏不充气

错误充气类android.widget.Toolbar

的Java

public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Toolbar customToolbar = findViewById(R.id.toolbar_1line); 
     setActionBar(customToolbar); 

     //add back arrow to toolbar 
     if (getActionBar() != null){ 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
      getActionBar().setDisplayShowHomeEnabled(true); 
     } 

     TextView mTitle = this.findViewById(R.id.toolbar_title); 
     mTitle.setText(getString(R.string.select_a_destination_station)); 
     mTitle.setTextColor(Color.WHITE); 
     mTitle.setEllipsize(TextUtils.TruncateAt.MARQUEE); 
     mTitle.setMarqueeRepeatLimit(-1); 
     mTitle.setSingleLine(true); 
     mTitle.setSelected(true); 
    } 
} 

工具栏布局

<?xml version="1.0" encoding="utf-8"?> 
<android.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar_1line" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:minHeight="?android:attr/actionBarSize"> 

    <LinearLayout 
     android:id="@+id/singleline_text_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      style="@android:style/TextAppearance.Material.Widget.ActionBar.Title"/> 
    </LinearLayout> 
</android.widget.Toolbar> 

activity_main.xml

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

    <include layout="@layout/toolbar_singleline" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <ListView 
     android:id="@+id/list_objects" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

试试这个。

在Toolbar_layout

一种方式

变化

<android.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar_1line" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:minHeight="?android:attr/actionBarSize"> 
</android.widget.Toolbar> 

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar_1line" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?android:attr/actionBarSize"> 
</android.support.v7.widget.Toolbar> 

在Java代码

变化

Toolbar customToolbar = findViewById(R.id.toolbar_1line); 
setActionBar(customToolbar); 

//add back arrow to toolbar 
if (getActionBar() != null){ 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
    getActionBar().setDisplayShowHomeEnabled(true); 
} 

Toolbar customToolbar = (Toolbar) findViewById(R.id.toolbar_1line); 
setSupportActionBar(customToolbar); 
//add back arrow to toolbar 
if (getSupportActionBar() != null) { 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowHomeEnabled(true); 
} 

的另一种方式

变化

<android.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar_1line" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:minHeight="?android:attr/actionBarSize"> 
</android.widget.Toolbar> 

<Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar_1line" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?android:attr/actionBarSize"> 
</Toolbar> 

这很容易。