2016-08-29 6 views
0

나는 간단한 GridLayout가 간다 다음 IDE에서 아래 (이미지를 볼 수있는 바와 같이,안드로이드 GridLayout과의 fill_horizontal 오프 스크린

<GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="2" 
    android:rowCount="1" > 

    <TextView 
     android:layout_column="0" 
     android:layout_row="0" 
     android:text="Label"/> 

    <EditText 
     android:inputType="text" 
     android:layout_column="1" 
     android:layout_row="0" 
     android:text="asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf" 
     android:layout_gravity="fill_horizontal"/> 
</GridLayout> 

그러나이 화면을 확장 할 EditText 발생하지만 때 같은 일 장치에서 실행).

enter image description here

IT는 EditText 실제로 전체 화면 너비보다는 오프 화면을가는 이유입니다 GridLayout 셀의 폭 것으로 보인다. 이 문제를 일으키는 레이아웃에서 무엇이 잘못 되었습니까?

+1

http://stackoverflow.com/questions/30845440/edittext-getting-out-of-gridlayout이 부분을 참조하십시오. – KrishnaJ

답변

0

왜 GridView가 필요한지 잘 모르겠지만 어쩌면 그보다 더 잘 알고있을 것입니다.하지만이 게시물에 유용한 것을 찾을 수 있습니다. Gridview with two columns and auto resized images.

귀하의 경우 GridView에는 2 개의 열이 있으며 각각의 내부에는 너비 및 높이 매개 변수에 대한 값을 설정하지 않은보기가 있으며이 경우 Android는 wrap_content를 제외한 것입니다.

TextView 및 EditText에 layout_width = "wrap_content"가있는 경우 전체 내용을 래핑 할 때까지 한 줄로 확장됩니다. 그래서 전화 화면 밖으로 나가는 것입니다. 그들은 안드로이드에 대해,

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:columnCount="2" 
android:rowCount="1"> 
<TextView 
    android:layout_width="20dp" 
    android:layout_height="wrap_content" 
    android:layout_columnWeight="0.5" 
    android:layout_column="0" 
    android:text="Label with some long text event more text"/> 
<EditText 
    android:layout_width="50dp" 
    android:layout_height="wrap_content" 
    android:layout_columnWeight="1.5" 
    android:inputType="textMultiLine" 
    android:layout_column="1" 
    android:text="Some really long text here and more and more and more .... " 
    android:layout_gravity="fill_horizontal"/> 

은 우리가 여기서하고있는 것은 당신의 아이들에게 어떤 하드 코딩 된 값 (텍스트 뷰와 글고 치기)를 설정하는 것입니다

이 XML을 시도하고 당신이 예상되는 동작을 볼 수 : layout_width 속성을 지정하고 android : layout_columnWeight 속성도 지정하십시오. 이렇게하면 열의 비율이 일정 비율로 설정됩니다 (필요에 따라이 값으로 설정).

EditText를 사용하면 텍스트가 여러 줄로 묶여 있는지 확인하기 위해 small (android : inputType = "textMultiLine")을 사용하고 있습니다.

BTW : 일부 입력 양식을 수행하는 경우이를 위해 LinearLayout과 같은 다른 ViewGroups를 사용하도록 제안합니다.

문의 해 주셔서 감사합니다.

+0

답장을 보내 주셔서 감사합니다. 이 예는 문제에 초점을 맞추기 위해 줄였습니다. 이것이 단순한 이유입니다. 해결책은 layout_width를 0dp로 설정하는 질문에 대한 주석에서 지적되었습니다. – jgm

+0

나는 당신이 문제를 해결하기 위해 같은 일을 할 때 (왜 너비 너비로 0dp를 설정했는지),이 응답에 -1을 주 었는지 확신 할 수 없다. 그러나 왜 내가 그것에 대해 아무 것도 할 수 없다. 내 대답은 부정적인 투표를 받기에 틀리지 않습니다. – Sniper

+0

고정 폭을 사용하기 때문에 화면의 너비를 채우지 만 가장자리에서 떨어지지 않도록 필요한 결과를 제공하지 않기 때문에 답변을 올바르게 선택하지 않았습니다. – jgm