Android 动态创建的线性布局不包装内容
我试图在Android 动态创建的线性布局不包装内容,android,android-layout,textview,Android,Android Layout,Textview,我试图在线性布局中动态添加文本视图。一旦所有文本视图的宽度大于屏幕宽度,我需要在第一个文本视图的下方创建另一个LinearLayout,并继续添加文本视图。我基本上是将一个字符串拆分为多个文本视图,因为我需要检查一些单词的前面是否有“#”。如果是这样,我需要改变颜色。我遇到的问题是,第一个LinearLayout非常高(高度不包裹内容)。有什么帮助吗 林肯是直线布局柜台。一旦文本视图的宽度大于屏幕宽度,它就会增加 public void TextMod() { Linea
线性布局中动态添加文本视图。一旦所有文本视图的宽度大于屏幕宽度,我需要在第一个文本视图的下方创建另一个LinearLayout
,并继续添加文本视图。我基本上是将一个字符串
拆分为多个文本视图,因为我需要检查一些单词的前面是否有“#”。如果是这样,我需要改变颜色。我遇到的问题是,第一个LinearLayout
非常高(高度不包裹内容)。有什么帮助吗
林肯是直线布局柜台。一旦文本视图的宽度大于屏幕宽度,它就会增加
public void TextMod()
{
LinearLayout.LayoutParams layoutParams,layoutParams2;
layoutParams= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
llay= new LinearLayout(this.c);
llay.setOrientation(LinearLayout.HORIZONTAL);
llay.setBackgroundColor(Color.GREEN);
llay2= new LinearLayout(this.c);
llay2.setBackgroundColor(Color.MAGENTA);
llay2.setOrientation(LinearLayout.HORIZONTAL);
Boolean addl =true;
String parts[]= this.Dis.split(" ");
size=parts.length;
int i=0;
while( i<size)
{
//
if(textview_wid < this.w )
{
TextView valueTV = new TextView(c);
String d= parts[i] + " ";
valueTV.setText(d);
valueTV.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
textview_wid +=valueTV.getMeasuredWidth();
Log.d(" des", " TEEXT WIDTH " + valueTV.getMeasuredWidth());
if(d.charAt(0)=='#')
{
valueTV.setTextColor(Color.MAGENTA);
}
if(addl)
{
if(LinC==0)
{
llay.setLayoutParams(layoutParams);
this.Lin.addView(llay);
}
if(LinC==1)
{
llay2.setLayoutParams(layoutParams);
this.Lin.addView(llay2);
}
addl=false;
}
valueTV.setLayoutParams(layoutParams);
if(LinC==0)llay.addView(valueTV);
if(LinC==1)llay2.addView(valueTV);
i++;
}
else
{
Log.d(" des", " TOTAL TEXTVIE WIDE " + textview_wid);
textview_wid =0;
LinC++;
addl=true;
}
// valueTV.setLayoutParams(layoutParams);
}
}
XML
你做错了什么
setContentView(R.layout.activity_main);
这将内容视图设置为作为参数传递的xml布局。由于您要在TextMod
方法中创建动态布局,请稍后在代码中调用它,并在活动中设置结果布局。你应该这样做
onCreate(){
...
LinearLayout mLayout;
mLayout = sep.TextMod(); // make TextMod return the root view
setContentView(mLayout);
}
你能粘贴剩下的代码吗?onCreate()?@AndyFaizan好的,我已经发布了,请发布xml文件(布局)@如果TextMod函数要在listview中使用,是否仍然可以使用此功能?TextMod函数将两个线性布局添加到主XML中的线性布局是的,您可以在listview中使用它,但如果遇到问题,则需要粘贴与此相关的代码。如果要在main.xml中的布局中添加两个布局,请参考xml中的主布局,并将动态布局设置为子布局。我还没有尝试过。我在试东西。我把if(textview_-widsetContentView(R.layout.activity_main);
onCreate(){
...
LinearLayout mLayout;
mLayout = sep.TextMod(); // make TextMod return the root view
setContentView(mLayout);
}