以编程方式创建多个按钮:Android

时间:2017-08-03 08:11:08

标签: android relativelayout android-button

我知道之前曾多次询问过这个问题,但我无法解决我的问题。我试图以编程方式添加多个按钮。我希望按钮水平对齐。但是,只显示一个按钮。我到目前为止所尝试的是,

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter.font as tkFont
from tkinter import *

def retrieve_input(self):
    inputValue = content_text.get("1.0", "end-1c")
    print(inputValue)

root = Tk()
root.call('encoding', 'system', 'utf-8')
customFont = tkFont.Font(family='Raavi', size=17)
root.title("Unicode Handling")
root.geometry('400x200+150+200')
content_text = Text(root, wrap='word', font=customFont)
content_text.configure(font=customFont)
content_text.focus_set()
content_text.pack(expand='yes', fill='both')
scroll_bar = Scrollbar(content_text)
content_text.configure(yscrollcommand=scroll_bar.set)
scroll_bar.config(command=content_text.yview)
scroll_bar.pack(side='right', fill='y')
root.bind("<space>", retrieve_input)
root.mainloop()

我搜索了同样的内容并浏览了像

这样的链接

以及其他很多,但我不能在这里制作多个按钮。每次只显示一个按钮。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

首先,您应该LinearLayout使用HORIZONTAL方向,而不是RelativeLayout,因为Relative所有视图都在同一个地方(&# 39;为什么你只能看到一个Button

答案 1 :(得分:1)

首先,您创建单个Button btnTag,然后循环并多次更改此单个按钮(因此所有更改都没有意义,但最后一个会被覆盖)。最后,将该单个按钮添加到视图组。一旦。所以这里所有工作都正常(除了这不是你所期望的)。

您应该创建按钮并将addView()作为循环的一部分。

Button btnTag;

for (int j = 0; j < 4; j++) {
        btnTag = (Button) inflater.inflate(R.layout.buttons, null,
            false);

        ...

        btnTag.setId(j);

        townLayout.addView(btnTag);
    }

此外,当您使用自己的XML文件进行按钮膨胀时,您应该将某些属性移动到该XML,然后删除所有setClickable()setTextColor()等。

你应该考虑用{垂直LinearLayout替换RelativeLayout容器,否则你最终会得到彼此重叠的按钮(因为你的代码没有定位它们)。