我目前正在制作一个向后支持工具栏的应用,因此我有这个文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
然后,我通过执行以下操作以编程方式将其添加到视图中:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
但是,我希望能够将自定义视图添加到工具栏中,例如EditText和TextView,而无需将它们硬编码到上面的toolbar.xml中。
有没有办法做到这一点?值得注意的是,我正在使用V7支持库。
谢谢, 利安
答案 0 :(得分:4)
试试以下
第1步:将LinearLayout
添加到xml文件中的工具栏
<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<LinearLayout
android:id=@+id/toolbar_item_container
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" />
</android.support.v7.widget.Toolbar>
第2步:在代码中获取此LinearLayout
Toolbar mToolbar = (Toolbar)findViewById(R.id.toolbar_transaction);
LinearLayout layoutToolbar = (LinearLayout)
mToolbar.findViewById(R.id.toolbar_item_container);
步骤3:使用以下代码向此LinearLayout
添加和删除视图
layoutToolbar.addView();
layoutToolbar.removeView();
通过直接添加和删除
LinearLayout
中的元素,也可以在不Toolbar
的情况下完成此操作。你可以尝试两种方式。
希望它能提供帮助。
答案 1 :(得分:0)
如果您在xml中没有工具栏,可以通过编程方式设置自定义视图
purrr::map(variable, ~ data %>%
group_by_at(.x) %>%
summarise(number = mean(mpg))) %>%
set_names(variable) %>%
bind_rows(., .id = 'variable')