【问题标题】:Android Add Items One By One Into a LinearLayoutAndroid将项目一项一项添加到LinearLayout中
【发布时间】:2015-03-14 21:48:24
【问题描述】:

我是 Android 新手,正在尝试了解如何操作: - 我有一个带有 ScrollView 的活动,在里面我有一个 LinearLayout (R.id.my_layout) - 我需要以编程方式添加 TextView,所以我这样做:

我通过 seContentView 加载主 XML 布局,我将 ScrollView 内的 LinearLayout 称为“mLayout”等等。 我从一个文件中加载一个名称列表,并使用一个名为 populateList() 的函数我这样做:

private void populateList() {
    try {

        for (final String team : mTeams) {
            rCount++;
            addRow(team);
        }
    }

addRow()方法只是新建一个LinearLayout(mRow),一个TextView,2个Button,将TextView和2个Button添加到LinearLayout中,然后我使用addView将新的mRow添加到mLayout中。 一切正常,但 ScrollView 仅在我完成创建列表时显示(所以当 populateList() 结束时)。我想做的是按顺序一一显示行,以使活动具有更好的外观和一点动画效果。 有没有办法做到这一点? 我希望我能够解释它:-) 谢谢

【问题讨论】:

  • 是的,先生,您看到的只是创建一个新线程,然后在该线程中创建和循环,然后使用处理程序或 ui 通信方法连接到您的 ui 线程并添加它,这样,您将按顺序排列您的物品..
  • 如何从另一个线程修改 UI?
  • 我会给你一个代码
  • 我将不胜感激!谢谢!

标签: android android-layout scrollview


【解决方案1】:
new Thread(new Runnable() { // i am creating the new thread

        @Override
        public void run() {             
            // so call populateList() function here
        }
    }).start();

对于您的addRow(String string) 方法,您调用View.addView(); 的位置以这种方式编辑,并将以下代码放入您的addRow(String string) 方法中

View.post(new new Runnable() {// view here is mlayout the scrollView.

        @Override
        public void run() {             
            mlayout.addView(yourview); // note yourview should be final,
        //eclipse might help you with that
        }
    });

记得全局声明mlayout,这样就不用附加final

【讨论】:

  • 我会试试的,我会告诉你的 :-) 非常感谢!
  • 完美!有用!!我不得不在填充 ilist “for” 上添加一个 thread.sleep(100) 以减慢它的速度:-) 我阅读了很多关于这个问题的帖子,但没有简单的解决方案,但你在 5 分钟内给了我一个: -) 谢谢!不幸的是,由于声誉低下,我无法投票:-(
  • lol.. 是的,先生,确实如此,是的,是的,但它应该是静态的,像 Thread.sleep(1000) 也是毫秒,所以如果你想要 1 秒是 10*100 或 1000; 1 分钟是 60*100 或 6000,取决于您的选择;这只是顺便说一句,非常有帮助,如果您对此问题没有任何其他问题,您可以接受它作为答案:) @Pecana
  • 先生,您会在我的答案左侧的分数下方看到一些复选标记单击它,您会在复选标记上看到绿色油漆,表示它已被接受..check here for more@Pecana跨度>
  • 完成,请原谅我提出的愚蠢问题 :-) 再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
相关资源
最近更新 更多