使用 listView 将工具栏添加到 activity
Add toolbar to activity with a listView
我正在尝试向我的 activity 添加一个工具栏,它只有一个元素列表作为内容。这是我的代码,但它不起作用,因为它说我正在使用多根。怎么可能?
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="20sp" >
</TextView>
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/HeaderBar"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
android:elevation="4dp"/>
是的……Android是对的。
只能有一个根布局。您可以添加相对布局或线性布局作为根布局。根布局将包装您的文本视图和工具栏。
谢谢
您需要将所有内容放在 RelativeLayout 或 LinearLayout 中。
在这个例子中我使用 RelativeLayout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:layout_below=""@+id/my_toolbar/>
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/HeaderBar"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
android:elevation="4dp"/>
</RelativeLayout>
如果工具栏不是顶部,只需添加 工具栏部分 android:layout_alignParentTop="true"
您正在尝试在 ListView
项布局中添加 Toolbar
。
您必须在 Activity
布局中添加 Toolbar
。
你应该像这样:
<androidx.coordinatorlayout.widget.CoordinatorLayout>
<com.google.android.material.appbar.AppBarLayout>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</com.google.android.material.appbar.AppBarLayout>
<android.widget.ListView/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
您还应该使用 androidx library and not the support libraries (for example androidx.appcompat.widget.Toolbar
instead of android.support.v7.widget.Toolbar
) and a RecyclerView
instead of a ListView
。
我正在尝试向我的 activity 添加一个工具栏,它只有一个元素列表作为内容。这是我的代码,但它不起作用,因为它说我正在使用多根。怎么可能?
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="20sp" >
</TextView>
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/HeaderBar"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
android:elevation="4dp"/>
是的……Android是对的。
只能有一个根布局。您可以添加相对布局或线性布局作为根布局。根布局将包装您的文本视图和工具栏。
谢谢
您需要将所有内容放在 RelativeLayout 或 LinearLayout 中。
在这个例子中我使用 RelativeLayout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="20sp"
android:layout_below=""@+id/my_toolbar/>
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
style="@style/HeaderBar"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
android:elevation="4dp"/>
</RelativeLayout>
如果工具栏不是顶部,只需添加 工具栏部分 android:layout_alignParentTop="true"
您正在尝试在 ListView
项布局中添加 Toolbar
。
您必须在 Activity
布局中添加 Toolbar
。
你应该像这样:
<androidx.coordinatorlayout.widget.CoordinatorLayout>
<com.google.android.material.appbar.AppBarLayout>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</com.google.android.material.appbar.AppBarLayout>
<android.widget.ListView/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
您还应该使用 androidx library and not the support libraries (for example androidx.appcompat.widget.Toolbar
instead of android.support.v7.widget.Toolbar
) and a RecyclerView
instead of a ListView
。