gpt4 book ai didi

java - 以编程方式添加没有可见边距的按钮

转载 作者:行者123 更新时间:2023-12-02 05:06:58 25 4
gpt4 key购买 nike

我有一个以编程方式向布局添加按钮的类,但我需要添加的按钮与布局底部齐平并且彼此齐平 - 没有可见的边距。

正如您在所附屏幕截图中看到的 - 按钮下方、按钮之间以及按钮左侧和右侧都有一个边距。我需要没有边距 - 按钮应该填充布局的整个下部。

screenshot of the problem

这是我的容器布局 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/someclass_rootlayout"
android:orientation="vertical"
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="somepackage.someclass"
>


<LinearLayout
android:id="@+id/someclass_buttonlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="horizontal"
/>

</LinearLayout>

这是我在类中以编程方式添加按钮的代码,该类接收包含要添加的按钮的字符串名称的数组 (buttonNames) 作为输入。出于测试目的,我总是传递两个元素的数组并将它们放置在布局的左侧和右侧。

private Window window;
private WindowManager.LayoutParams windowParams;

private int resourceIdentifier = 0;

...

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.someclass_fragment, container, false);
ButterKnife.inject(this, view);

window = getDialog().getWindow();

windowParams = window.getAttributes();

window.requestFeature(Window.FEATURE_NO_TITLE);

someclass_buttonlayout.setWeightSum(buttonNames.size());

for (String string : buttonNames) {
addNewButton(string);
resourceIdentifier++;
}

return view;
}

private void addNewButton(String name) {
Button newbutton = new Button(context);
newbutton.setText(name);
newbutton.setId(resourceIdentifier);
newbutton.setTextColor(getResources().getColor(R.color.black));
newbutton.setMinHeight(0);
newbutton.setMinWidth(0);
newbutton.setShadowLayer(0,0,0,0);
newbutton.setBottom(0);
newbutton.setPadding(0,0,0,0);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

if (resourceIdentifier==0) {
layoutParams.gravity = Gravity.LEFT;
} else {
layoutParams.gravity = Gravity.RIGHT;
}

layoutParams.weight = 1;

newbutton.setLayoutParams(layoutParams);

newbutton.setOnClickListener(this);

newbutton.setTag(name);
someclass_buttonlayout.addView(newbutton);

}

有谁知道为什么尽管如此,这些按钮周围仍然有一个边距,以及是否有任何方法可以消除该边距?

最佳答案

您应该在动态创建按钮时向一个或多个按钮添加背景颜色,如下所示:

newbutton.setBackgroundColor(Color.parseColor("#848482")); //#848482 is dark gray

关于java - 以编程方式添加没有可见边距的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27703920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com