如果没有空间,则打破线

时间:2018-04-02 09:18:59

标签: android android-layout textview

如果我在android中添加多个文本视图,它会隐藏我需要在屏幕完成后中断 举个例子,我的代码是这样的

var arr = [{a: "one", b: "two"}];
/* in real code I have actual filter condition, but the filtered result
share some common properties with value */
var res = {
  arr1: arr.map(x => Object.assign({}, x)),
  arr2: arr.map(x => Object.assign({}, x))
};

res.arr1.forEach(x => x.a = "a");

console.log(arr); //should print [{a: "one", b: "two"}]
console.log(res.arr1); //should print [{a: "a", b: "two"}]
console.log(res.arr2); //should print [{a: "one", b: "two"}]

,结果似乎是

this is the screenshot

我需要在屏幕完成时将文本分解 并打破另一条线。 这只是我以编程方式执行此操作的示例代码,因此请不要回答添加更多线性布局。

4 个答案:

答案 0 :(得分:1)

对于灵活布局,您可以使用 FlexboxLayout 以及可以从Android Developers Blog获得的详细信息以及您可以访问Github的Open source FlexboxLayout相关信息。

答案 1 :(得分:0)

If you want your textView appearing with multiple line with a scrollable properties, then no need to use multiple textView.

检查波纹管解决方案:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"`enter code here`
    android:background="#000000"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView_id"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#40000000"
        android:maxLines="100"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:scrollbarThumbVertical="@android:color/transparent"
        android:scrollbars="vertical"
        android:textColor="@color/white"
        android:textSize="16sp"
        android:textStyle="bold" />

</LinearLayout>

And bellow code on your Activity:
TextView txtView = (TextView) findViewById(R.id.TextView_id);
txtView.setText("your text here");
txtView.setMovementMethod(new ScrollingMovementMethod());

答案 2 :(得分:0)

如果您想在运行时使用文字浏览量,可以尝试使用 GridView 作为

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>

和Gridview item as TextView

<TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/text"
  />

您可以根据位置或文字视图文字在 onItemClickListener() //中执行操作,使用switch case或其他内容选择操作。

   GridView gridView = (GridView) findViewById(R.id.grid_view);
   gridView.setAdapter(yourCustomAdapterObject);
   gridView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       //here view is your textview
       switch (position) {
           case 0: //action
               break;
           case 1://action
               break;
           ....
           }
       }
  }); 

答案 3 :(得分:0)

如果您想以编程方式创建TextView并为每个创建一个Listener。 这是守则。首先删除布局中的所有textview。

TextView tv[] = new TextView[subCategory.length];
    for (int i = 0; i < subCategory.length; i++) {
            tv[i] = new TextView(this);
            tv[i].setText(subCategory[i]);
            tv[i].setId(i);
            layout5.addView(tv[i]); 
            tv[i].setOnClickListener(onclicklistener);
        }

对于Listner

OnClickListener onclicklistener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v == tv[0]){
            //do whatever you want....
        }
    }
};