以编程方式设置ActionBar的app:contentInsetStartWithNavigation属性。

9 浏览
0 Comments

以编程方式设置ActionBar的app:contentInsetStartWithNavigation属性。

我将一个旧的Android应用程序升级到了androidx。

现在在操作栏图标之前有很大的空间。

我正在研究并发现一个问题解释说这是由于

app:contentInsetStartWithNavigation

app:contentInsetStart

没有办法以编程方式将它们都设置为0dp吗?

我目前的代码:

public static void initializeActionBar(Context context, ActionBar bar, boolean showBackButton){
    if (bar != null) {
        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
        bar.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.wood2));
        bar.setIcon(R.drawable.icon_white); //自定义标志
        if(showBackButton){
            bar.setDisplayHomeAsUpEnabled(true);
        }
    }
}

这段代码在各种活动中使用,像这样:

ActivityTools.initializeActionBar(this,getSupportActionBar(), false);

0
0 Comments

问题:如何在ActionBar中以编程方式设置Set app:contentInsetStartWithNavigation?

原因:在ActionBar中设置Set app:contentInsetStartWithNavigation需要使用Toolbar。

解决方法:使用Toolbar替代ActionBar,并使用setContentInsetStartWithNavigation方法设置Set app:contentInsetStartWithNavigation。

示例代码:

class DemoActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_recurring_billing)

setSupportActionBar(mToolbar)

mToolbar!!.setContentInsetsAbsolute(10, 0)

mToolbar!!.contentInsetStartWithNavigation = 10

}

}

0