为类似于列表的列表构建UI /布局,其中单元格是按钮

时间:2017-02-25 09:46:16

标签: android android-layout listview android-tablelayout

我是Android开发的新手,想要对UI问题进行一些输入。我需要一个列表,每个都有编号(最多约20个项目),每个都有1-4个“子项目”,类似于草图中显示的(除了正确对齐)。该数字应该作为一个大按钮,而右边的子项目部分应该作为另一个大按钮(每行的两个可点击区域用红色框显示)。那么我的问题是,构建这样的界面的理想,最安全的方式是什么?

rough layout

我目前有一个非常简单的演示工作,在ScrollView中使用TableLayout构建,其中每个TableRow是两列宽(第一个单元格包含单个TextView中的数字,第二个单元格包含TextViews的LinearLayout,每个子项目一个) );但是,我有几个问题:

  • 只有TextViews(不是周围的填充)可以点击;我希望整个红色框都可以点击,但只有绿色框实际上是

  • 没有点击动画

  • 我甚至没有试过让子项目区域可点击,但在我看来,我至少需要让每个子项目(TextView)可点击(这需要将点击处理程序添加到每个子项目单独),即使这样,我也会遇到严格的问题,即TextView本身是可点击的,而不是整个单元格

我想到的一些选项:

  • 使用平面按钮代替TextViews作为左侧的数字;这将照顾动画/反馈方面,但我不确定这是否会解决填充不可点击的问题,或者它如何在子项目列中工作

  • 使用ListView而不是TableLayout;我不知道我需要什么样的黑暗魔法才能使左侧的所有按钮大小相同/对齐子项列表,我仍然不知道如何使数字足够大以便用户赢得'不小心错过了

  • 其他一些我尚未想到的正确解决方案,不涉及任何鞋类和丑陋的解决方法

怎么办?我目前的做法是否已经合理,只是需要一些我不知道的简单调整?

1 个答案:

答案 0 :(得分:1)

您可以根据需要以编程方式添加按钮

public void AddAll() {
final RelativeLayout rl = (RelativeLayout)findViewById(R.id.rel);

for(int i=0;i<4;i++)
{
    final Button btn = new Button(this);
    rl.addView(btn); 
    btn.setText("Button");

    btn.setWidth(320);
    btn.setHeight(40);
}

}