以编程方式设置ActionBar的app:contentInsetStartWithNavigation属性。
以编程方式设置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);
问题:如何在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
}
}