gpt4 book ai didi

android - 以编程方式创建工具栏并将其添加到 AppCompatActivity

转载 作者:行者123 更新时间:2023-11-29 19:15:42 27 4
gpt4 key购买 nike

我正在尝试为以编程方式扩展 AppCompatActivity 的类设置工具栏,但该 Activity 在运行时没有工具栏。我能够找到的关于使用工具栏的每个教程都以 XML 创建和添加工具栏,但我正在寻找一种更好的方法将工具栏添加到我的所有 Activity 中,所以我试图以编程方式进行。但是,我运行的时候工具栏不是不可见就是没有添加,找不到问题所在。这是我的代码:

public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Toolbar toolbar = new Toolbar(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, R.attr.actionBarSize);
toolbar.setLayoutParams(layoutParams);
toolbar.setPopupTheme(R.style.AppTheme);
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
toolbar.setTitle("This is the title");
toolbar.setVisibility(View.VISIBLE);
setSupportActionBar(toolbar);
}
}

这是我的 XML 文件 activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

</LinearLayout>

我无法弄清楚我的工具栏有什么问题。提前感谢您的帮助。

最佳答案

使用 YOUR_LAYOUT.addView(toolbar, 0)Toolbar 添加到您的 Activity 布局:

public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Toolbar toolbar = new Toolbar(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 168);
toolbar.setLayoutParams(layoutParams);
toolbar.setPopupTheme(R.style.AppTheme);
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
toolbar.setTitle("This is the title");
toolbar.setVisibility(View.VISIBLE);

// Assuming in activity_main, you are using LinearLayout as root
LinearLayout ll = (LinearLayout) findViewById(R.id.your_linear_layout);
ll.addView(toolbar, 0);

setSupportActionBar(toolbar);
}
}

使用MainActivity主题AppTheme.NoActionBar来避免RuntimeException:

This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

输出:

enter image description here

希望对你有帮助~

关于android - 以编程方式创建工具栏并将其添加到 AppCompatActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43575640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com