사용자가 입력 할 때 EditText가 자체화되는 것을 방지하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1408781

문제

나는있다 EditText 그리고 a Button 동일한 수평선으로 서로 옆에 놓습니다. 사용자가 많은 텍스트를 입력 할 때를 제외하고는 멋져 보입니다. EditText 크기가 높아지고 Button 낭비됩니다.

나는 둘 다 가지고있다 EditText 그리고 Button 로 설정 layout_width="wrap_content". "fill_parent" 레이아웃을 엉망으로 만들고 필요하지 않으면 절대 크기를 사용하고 싶지 않습니다. 이제는 풍경과 초상화 모두에서 멋지게 보입니다. EditText 크기를 조정합니다.

내 레이아웃 :

<TableLayout
    android:id="@+id/homelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow>
        <TextView
            android:id="@+id/labelartist"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Find artists:" />
    </TableRow>
    <TableRow>
        <EditText
            android:id="@+id/entryartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:background="@android:drawable/editbox_background"
            android:editable="true"
            android:padding="5px"
            android:singleLine="true" />
        <Button
            android:id="@+id/okartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_weight="1"
            android:text="Search" />
    </TableRow>

</TableLayout>
도움이 되었습니까?

해결책

edittext 사용

android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"

그리고 버튼을 위해 지정하지 마십시오 android:layout_weight

다른 팁

내가하는 일은 활동을 위해 onecreate에서 edittext를 측정 한 다음 MaxWidth를 적용하는 것입니다.

다음과 유사한 코드를 사용하여 수행 할 수 있습니다.

EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());

주다 EditTextmaxWidth. 그것은 당신이 제공 한 너비 너머로 크기를 조정하는 것을 막아야합니다. 또한 1 라인 내에 포함되기를 원한다면 maxLines 1로 설정합니다.

그냥 사용 :

android:layout_width="fill_parent"

edittext 및 버튼 모두. 또한 edittext에 대해서도 작동하지만 두 가지를 모두 사용하는 것이 좋습니다.

enter image description here

이 동작을 방지하기 위해 Android : Imeoptions를 추가해야합니다.

여기를 클릭하십시오

위에 표시된대로 edittext의 크기를 정의 할 수 있습니다.

android:minWidth="80dp"
android:maxWidth="80dp"

또는

android:layout_width="60dp"

또는

원하는 크기의 배경 이미지를 적용 할 수 있지만 wrap_content로 높이와 너비를 정의하는 것을 잊지 마십시오.

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

비슷한 문제가 있었지만 위의 일을 할 수 없었습니다. 내가 한 일은 EditText Box에서 텍스트를 가져간 다음 화면이 처리 할 수있는 최대 크기로 포맷하는 것입니다. 이것을 DB에 저장하면 디스플레이 텍스트와 원본 텍스트로 저장합니다.

당신이 가면 이 페이지에 더 긴 설명을했습니다.

이를 수행하는 올바른 방법은 Android : Minwidth 및 Android : Maxwidth를 원하는 너비와 동일하게 설정하는 것입니다. 이렇게하면 Android : Layout_weight를 사용하기 위해 레이아웃을 조정할 필요가 없습니다.

예를 들어, EditText가 항상 80 개의 밀도 픽셀이 되려면 다음을 입력 한 문자 수에 관계없이 다음을 사용하십시오.

android:minWidth="80dp"
android:maxWidth="80dp"

정확한 쿼리가있었습니다. 그러나 나는 선형 레이아웃에서 서로 옆에 edittext와 버튼을 가지고있었습니다. 나는 시도했다 Android : editText의 경우 layout_weight = "1"입니다안드로이드 : layout_width = "0DP"와 완벽하게 작동했습니다 !! 정말 감사합니다!

선택한 솔루션은 작동하지만 약간의 보완을 추가하겠습니다.
사용하는 경우android:layout_weight="0.15" (가치는 중요하지 않습니다)
그 다음에
android:layout_width="0dp" 만약 LinearLayout 수평입니다
또는
android:layout_height="0dp" 만약 LinearLayout 수직입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top