我正在学习下一个教程:
我想做类似的设计:
我知道我需要使用两个工具栏。
值/的themes.xml
<resources>
<style name="Theme.MiThema" parent="Theme.AppCompat.Light">
<!-- Here we setting appcompat’s actionBarStyle -->
<!--<item name="actionBarStyle">@style/MyActionBarStyle</item>-->
<!-- ...and here we setting appcompat’s color theming attrs -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">@color/accent</item>
</style>
</resources>
class.java
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Toolbar;
public class RegistrarInciTraActivity extends ActionBarActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.registrar_inci_traf_layout);
//ocultamos ActionBar
getSupportActionBar().hide();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}
布局
<?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="horizontal">
<!-- The toolbar -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- drawer view -->
<LinearLayout
android:layout_width="304dp"
android:layout_height="match_parent"
android:layout_gravity="left|start">
<!-- drawer content -->
</LinearLayout>
<!-- normal content view -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- The rest of content view -->
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
Tha代码报告“setSupportActionBar(toolbar);”上的一个错误:
(第一个问题)¿有什么问题? (已解决)
(第二个问题)
在我的布局上出现
“?attr / actionBarSize”和“?attr / colorPrimary”
我必须在哪里声明这些属性?
(第三个问题)
当我做两个工具栏时,只显示一个工具栏,我想要一个在另一个工具栏中显示内容。
我必须显示两个工具栏吗?
由于
答案 0 :(得分:2)
我可以帮你解决第一个问题。它非常简单 - 您只需阅读IDE提供的消息。您使用的是错误的工具栏。您尝试传递给setSupportActionBar-Method的工具栏来自android.widget包。但是你要使用android.support.v7.widget包中的工具栏。所以你的导入是错误的 - 纠正它们,你的代码应该有效。
答案 1 :(得分:1)
当第一个问题解决后,让我尝试第二个一个,
首先,您不必在任何地方定义这些值,它们是预定义的。
“?attr / actionBarSize” :这是Android提供的默认值。你将在android.support.v7.appcompat/R
得到它,但它会给你一个int引用。如果您想知道Actionbar的实际高度,则必须在运行时解析属性actionBarSize
。请点击此链接:Get ActionBar Size(在其他SO Q上给出答案)。
此外,通过 Material Design ,Google在Material Design中设计新应用程序(或升级旧应用程序)时共享了一些标准。您可以在此处遵循这些规范:LayoutMetrics & keylines
“?attr / colorPrimary” :这也是一个预先定义的值。你可以在android.support.v7.appcompat/R
得到它,但它会给你一个int引用。但是,如果您想为自己的ToolBar
添加自定义背景颜色,则只需在android:background="@color/colorPrimary"
中添加适当的调色板colorPrimary
并定义color.xml
值即可。使用此网站获取不同的颜色值:Material Palette(我更喜欢这个网站)。