以编程方式在 ActionBar 上设置 app:contentInsetStartWithNavigation

Set app:contentInsetStartWithNavigation on ActionBar programmatically

我已经将旧的 Android 应用程序升级到 androidx。

现在操作栏中的图标前有一个大大的space。

我正在调查它并发现 它解释说这是由于

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); //custom logo
        if(showBackButton){
            bar.setDisplayHomeAsUpEnabled(true);
        }
    }
}

此代码用于以下各种活动:

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

为此您需要使用工具栏

首先,使用工具栏

那么你可以使用setContentInsetStartWithNavigation(int insetStartWithNavigation)

示例代码

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



    }
}