我正在开发Android项目,并且我已经从Android创建了一个新的设置活动。当我创建活动并尝试运行时,Android Studio创建的设置活动由于某种原因没有包含操作栏。我用Google搜索,发现它似乎是一种常见的事情,并手动添加操作栏,所以我做了以下事情:
private void setupActionBar()
{
getLayoutInflater().inflate(R.layout.toolbar, (ViewGroup)findViewById(android.R.id.content));
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null)
{
// Show the Up button in the action bar.
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
我发现第一个首选项标题隐藏在操作栏下,再次用Google搜索,发现你需要在列表视图中添加填充,我在onCreate()
中使用了以下内容getListView().setPadding(0, 180, 0, 0);
执行上述操作似乎有点奇怪,它只能在初始设置活动屏幕上使用首选项标题列表。单击首选项标题以查看设置后,第一个设置将隐藏在操作栏下,如下面的屏幕截图所示:
答案 0 :(得分:1)
我想我明白了。
我创建了一个工具栏XML,如下所示
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settings_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
然后在setupActionBar方法的SettingsActivity中,如下所示:
private void setupActionBar()
{
ViewGroup rootView = (ViewGroup)findViewById(R.id.action_bar_root);
View view = getLayoutInflater().inflate(R.layout.settings_toolbar, rootView, false);
rootView.addView(view, 0);
Toolbar toolbar = (Toolbar)findViewById(R.id.settings_toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
// Show the Up button in the action bar.
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
答案 1 :(得分:0)
我建议您删除操作栏并制作一个自定义工具栏,该工具栏将由其他布局文件描述,并包含取消当前活动的窗口小部件。
例如:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/relLayout1">
<include layout="@layout/snippet_comments_toolbar"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relLayout2"
android:layout_below="@+id/relLayout1"
android:layout_marginBottom="60dp">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"></ListView>
</RelativeLayout>
然后是snippet_comments_toolbar,这是我正在谈论的工具栏:
<merge xmlns:android="http://schemas.android.com/apk/res/android"
>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/white_grey_border_bottom"
>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/profileToolBar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="20dp"
android:layout_centerVertical="true"
android:id="@+id/backArrow"
android:src="@drawable/ic_backarrow"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Comments"
android:layout_toRightOf="@+id/backArrow"
android:layout_marginRight="15dp"
android:textSize="20sp"
android:textColor="@color/black"
android:layout_centerVertical="true"
android:id="@+id/tvNext"
/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</merge>