android - 制作侧栏后程序总是停止
问题描述
我正在创建一个在我的工具栏下方显示侧栏的应用程序,这是我的代码。
xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/colorPrimary">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:textColor="#000000"
android:textSize="20sp"
android:background="@color/colorPrimary"
/>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/white"
app:itemTextColor="@color/darkgray"
app:itemIconTint="@color/darkgray"
app:menu="@menu/drawermenu"
android:layout_gravity="start"
android:id="@+id/drawerLayout"
>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
这是我的java
import android.content.DialogInterface;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
public class test extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.activity_felcosfafield, null);
TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
mTitleTextView.setText("Test");
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
}
}
这是 gradles 依赖项
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:27.1.1'
}
我只是按照教程中的说明进行操作,但是当我尝试时,应用程序突然崩溃了,而且我在这里发现了一个错误
DrawerLayout must be measured with MeasureSpec.EXACTLY.
有什么问题?我该如何解决?
解决方案
使用 Lineralayout 作为父布局。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
<!-- ...... -->
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
推荐阅读
- reactjs - 在 `next/image` 上出现错误 Invalid src prop ('here is a link'),主机名“localhost”未在 `next.config.js` 中的图像下配置
- struct - `==` 是否在 Julia 中递归检查结构?好像没有
- python - 在 Flask 中重定向时更改发布请求的值
- mysql - 如何使用 Laravel 和 mysql 计算表中具有不同日期和时间列的多行的总时间
- python - Pandas 在给定值列表的情况下查找数据框列中最接近值的索引
- r - 在 uniqueN 函数之后更改列的名称
- android - 截屏 Dialog 内的整个 ScrollView 内容
- excel - 文档已创建,但文件名不正确并保存在不正确的位置
- angular - 如何以角度从 algolia 获取特定数据
- python - Pycryptodome 生成错误的 CMAC