java - 动态添加多个水平线性布局到选项卡

标签 java android

我有一个案例,我需要将 2 个 TextView 添加到水平 LinearLayout,并多次复制该结构。

例如:

|TextView1| |TextView2|
| TextView 1| |TextView2|
等..

我目前的代码是:

        public View createTabContent(String tag){
            LinearLayout mainTabLayout = new LinearLayout(Result.this);
            mainTabLayout.setOrientation(LinearLayout.HORIZONTAL);
            mainTabLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

            for( Object param : mainHashMap.values() ){
                String key = param.toString();

                LinearLayout linLayout = new LinearLayout(Result.this);
                linLayout.setOrientation(LinearLayout.HORIZONTAL);

                linLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

                TextView tvKey = new TextView(Result.this);
                tvKey.setText(key);
                tvKey.setTextSize(15);
                linLayout.addView(tvKey);
                try{
                    String member = this.transformMember(key);
                    Method method = mainClass.getMethod("get" + member);

                    TextView tvValue = new TextView(Result.this);
                    tvValue.setText((method.invoke(mainData) != null) ? method.invoke(dvlaData).toString() : "");
                    tvValue.setTextSize(10);
                    linLayout.addView(tvValue);
                } catch (InvocationTargetException e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                } catch (IllegalAccessException e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }
                Log.d("ResultActivity", "adding to view");
                mainTabLayout.addView(linLayout);
            }
            return mainTabLayout;
        }

Log.d 显示它正在运行它需要的每个项目,但是 TabContent 只显示最后一个 LinearLayout。它会覆盖之前添加到 mainTabLayout 的 LinearLayouts。

我希望这是有道理的...

最佳答案

尝试将 mainTabLayout 方向设置为垂直而不是水平

关于java - 动态添加多个水平线性布局到选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496142/

相关文章:

java - 如何使用 CLASS 的 Java 注释保留策略

java - 我应该如何将设置菜单中的数据输入 MainActivity.java 文件以调整 Textview 窗口中文本的大小?

android - 在 SnackBar 上包装内容高度

java - 如何添加十六进制数

java - 如何在android中自定义firebase应用内消息?

android - 找不到 opencv.hpp?安卓NDK

java - 计时器可做多项事情

java - NatTable-设置动态列宽

java - 将数据从应用程序(Java)导入临时表的最快方法是什么?

java - JPA @OneToOne关系删除