首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线性布局水平填充第一行芯片时,第二行芯片如何排列?

线性布局水平填充第一行芯片时,第二行芯片如何排列?
EN

Stack Overflow用户
提问于 2017-04-04 19:23:45
回答 1查看 184关注 0票数 1

我面临着在排列文本视图时的问题,我是在一个线性布局的水平视图中动态创建芯片,当我创建多个芯片时,只有少数芯片正在查看,其余的都是隐藏的,当第一行是filled.Please时,如何在第二行排列芯片帮助我如何解决这个问题。

下面的代码用于动态创建线性布局的芯片

代码语言:javascript
复制
LinearLayout    linearChip  = (LinearLayout)findViewById(R.id.linear_chip);
   Chip chip = new Chip(this);
   chip.setChipText(tag);
   chip.setClosable(true);
   chip.setPadding(10,0,0,0);
   chip.setTextColor(Color.BLACK);
   chip.setBackgroundColor(Color.LTGRAY);
   chip.setCloseColor(Color.BLACK);
   chip.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
   chip.setOnCloseClickListener(new OnCloseClickListener() {
       @Override
       public void onCloseClick(View v) {
               linearChip.removeView((View) v.getParent());
       }
   });

   linearChip.addView(chip);

}

EN

回答 1

Stack Overflow用户

发布于 2017-04-04 19:42:42

请检查此FlowLayout Library

在添加视图时,FlowLayout的工作方式与预期一样,如果在FlowLayout中添加视图,它将自动调整视图。

代码语言:javascript
复制
<com.FlowLayout
      android:id="@+id/chips_box_layout"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="start"/>

代码语言:javascript
复制
FlowLayout chipsBoxLayout = (FlowLayout)findViewById(R.id.chips_box_layout);

FlowLayout.LayoutParams params = new FlowLayout.LayoutParams(FlowLayout.LayoutParams.WRAP_CONTENT, FlowLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(5, 5, 5, 5);

String demoText;
for(int i=0; i< 5; i++){
  demoText = "hello" + i;
  TextView t = new TextView(context);
  t.setLayoutParams(params);
  t.setPadding(5, 5, 5, 5);
  t.setText(demoText);
  t.setTextColor(Color.WHITE);
  t.setBackgroundColor(Color.BLUE);
  chipsBoxLayout.addView(t);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43205843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档