【问题标题】:Building UI/layout for a table-like list where cells are buttons为单元格是按钮的类似表格的列表构建 UI/布局
【发布时间】:2017-07-16 05:12:25
【问题描述】:

我是 Android 开发新手,想就 UI 问题提供一些意见。我需要一个事物列表,每个事物都有编号(最多 20 个项目),每个项目都有 1-4 个“子项目”,有点像草图中所示(除了正确对齐)。该数字应该充当一个大按钮,而右侧的子项部分应该充当另一个大按钮(每行的两个可点击区域以红色框显示)。那么我的问题是,构建这样一个界面的理想的、最适合 Android 的方式是什么?

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

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

  • 没有点击动画

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

我想到的一些选项:

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

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

  • 我还没有想到的其他一些合适的解决方案,不涉及任何强硬和丑陋的解决方法

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

【问题讨论】:

标签: android android-layout listview android-tablelayout


【解决方案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);
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多