【问题标题】:android setting EditText to scroll horizontally instead of verticallyandroid设置EditText水平滚动而不是垂直滚动
【发布时间】:2015-03-30 11:54:39
【问题描述】:

我正在以编程方式添加一个 editText 控件,该控件的值比控件的宽度长,并且正在换行到下一行。 我希望文本改为水平阅读,而不是跨越多行或允许垂直滚动

我尝试了以下设置的多种组合,但它们似乎根本没有影响。

et.setHorizontallyScrolling(true);
et.setSingleLine(true);
et.setLines(1);
et.setMaxLines(1);
et.setHorizontalScrollBarEnabled(true);

et.setRawInputType(InputType.TYPE_CLASS_TEXT| InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);

【问题讨论】:

    标签: java android android-edittext


    【解决方案1】:

    全部删除,仅使用et.setSingleLine(true);

    【讨论】:

    • 我的意思是 - et.setLines(1); et.setMaxLines(1);
    • 还有另一种方式:android:ellipsize="end" android:maxLines="1"。以及以下方法: et.setEllipsize(); et.maxLines()
    【解决方案2】:

    只需更改您的代码 ....在此的帮助下

     public class MainActivity extends Activity {
        private LinearLayout ll;
        private ScrollView sv;
        private EditText et,et1,et2,et3;
    
        @Overrid
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            ll = new LinearLayout(this);
            ll.setOrientation(LinearLayout.VERTICAL);
            ll.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    
            et = new EditText(this);
            et.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            et.setHeight(80);
    
            sv = new ScrollView(this);
            sv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            sv.addView(et);
    
            ll.addView(sv);
    
            setContentView(ll);
        }
    }
    

    【讨论】:

      【解决方案3】:
      @Override
      public void onCreate(Bundle savedInstanceState)
      {
          super.onCreate(savedInstanceState);
          LinearLayout ll = new LinearLayout(this);
          ll.setOrientation(LinearLayout.VERTICAL);
          ll.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));
          EditText et = new EditText(this);
          et.setSingleLine(true);
          et.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT));
          et.setRawInputType(InputType.TYPE_CLASS_TEXT| InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);
          ll.addView(et);
          setContentView(ll);
      }
      

      仅使用 setSingleLine(true); 这可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-29
        • 1970-01-01
        • 2012-04-08
        • 1970-01-01
        • 2011-06-26
        • 1970-01-01
        • 1970-01-01
        • 2021-11-13
        相关资源
        最近更新 更多