我正在设置一个新的应用程序,并遇到了MaterialButton的高度与我设置的大小不匹配的事实。
因此,我尝试使用常规Button,就像你们在下面的屏幕截图中看到的那样。
这些按钮的高度不同,尽管它们的高度与您在我的代码中看到的高度相同。
如何使用MaterialButton获得正常的高度?
谢谢你。
公共(public)类MainActivity扩展了AppCompatActivity {
MaterialButton materialButton;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setId(getGeneratedId());
setContentView(linearLayout);
int buttonWidth = getResources().getDimensionPixelSize(R.dimen.buttonWidth);
int buttonHeight = getResources().getDimensionPixelSize(R.dimen.buttonHeight);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(buttonWidth, buttonHeight);
materialButton = new MaterialButton(this);
materialButton.setId(getGeneratedId());
materialButton.setLayoutParams(layoutParams);
materialButton.setBackgroundColor(Color.BLUE);
materialButton.setText("MatrialB");
materialButton.setTextColor(Color.WHITE);
button = new Button(this);
button.setId(getGeneratedId());
button.setLayoutParams(layoutParams);
button.setBackgroundColor(Color.RED);
button.setText("Button");
button.setTextColor(Color.WHITE);
linearLayout.addView(materialButton);
linearLayout.addView(button);
}
Integer getGeneratedId() {
return ViewCompat.generateViewId();
}
} 最佳答案
我相信MaterialButton顶部和底部的空间来自android:insetTop
/android:insetBottom
,这对我来说是带有 Material 组件1.0.0的6dp
。我不确定如何以编程方式设置它们,但是可以在xml中轻松完成:
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:insetBottom="0dp"
android:insetTop="0dp"/>
关于java - MaterialButton与Button的大小差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56840355/