2010-04-28 4 views
3

레이아웃 문제가 있습니다.
<TableLayout android:id="@+id/t_layout_contents" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/l_layout_tags" android:stretchColumns="1" android:paddingLeft="5dip" android:paddingRight="5dip" /> TableLayout에 EditText 위젯 (일부 속성 포함)의 크기를 자동으로 조정하는 방법

  • 삽입 첫 번째 행 프로그램에서 onCreate에서() :

    1. 제로 아이들과 함께 XML로 TableLayout을 만들기 : 내가 할 것은 이것이다
      TableLayout tLayoutContents = (TableLayout)findViewById(R.id.t_layout_contents);
      NoteElement nr_1 = new NoteElement(this);
      tLayoutContents.addView(nr_1);

    클래스 "NoteElement"TableRow를 확장 . 첫 번째 행은 공백으로 된 ImageView와 텍스트를 입력하는 EditText로 구성됩니다. NoteElement의 생성자는 다음과 같습니다

    public NoteElement(Context c) { 
        super(c); 
        this.context = c; 
        defaultText = c.getResources().getString(R.string.create_note_help_text); 
    
        imageView = new ImageView(context); 
        imageView.setImageResource(android.R.color.transparent); 
    
        LayoutParams params = new LayoutParams(0); 
        imageView.setLayoutParams(params); 
    
        addView(imageView); 
        addView(addTextField()); 
    } 
    

    방법 addTextField()가 글고 위젯의 속성을 지정

    private EditText addTextField() { 
        editText = new EditText(context); 
        editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 
        editText.setMinLines(4); 
        editText.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
        editText.setHint(R.string.create_note_et_blank_text); 
        editText.setAutoLinkMask(Linkify.ALL); 
        editText.setPadding(5, 0, 0, 0); 
        editText.setGravity(Gravity.TOP); 
        editText.setVerticalScrollBarEnabled(true); 
    
        LayoutParams params = new LayoutParams(1); 
        editText.setLayoutParams(params); 
    
        return editText; 
    } 
    

    를 지금까지 너무 좋아. 그러나 문자에 대한 사용 가능한 공간이 고갈되면 즉시 내 문제가 발생합니다. EditText 자체 크기를 조정할 수 있지만 EditText 한 줄로 전환합니다. 필자는 EditText가 삽입 된 텍스트 길이에 따라 동적으로 높이가 조정되는 방식을 찾고 있습니다.

    누구에게도 힌트가 있습니까?

  • 답변

    1

    오케이, 알겠습니다. 이것은 일반적으로 TableLayout의 쟁점 인 것으로 보입니다. 간단한 LinearLayout으로 레이아웃을 다시 구현했습니다. 나는 목적을 동일하게 제공하며 EditText이 올바르게 표시됩니다. 실제로 나는 TableLayout을 사용할 이유가 보이지 않으며, 지금 당장은 실제로 사람이 필요로하는 상황을 생각할 수 없습니다. 즉, LinearLayout은 불충분합니다.
    가능한 경우 LinearLayout 또는 RelativeLayout과 같은 다른 레이아웃을 사용하는 것이 좋습니다. 그러나 이것들은 단지 두 개의 센트입니다. ...