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

时间:2019-07-19 08:20:14

标签: android android-actionbar androidx android-actionbar-compat

我已将较旧的android应用程序升级为androidx。

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

enter image description here

我正在调查它,发现a question解释了这是由于

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);

1 个答案:

答案 0 :(得分:1)

您需要为此使用工具栏

首先,使用工具栏

然后您可以使用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



    }
}