2012-09-22 2 views
1

나는 스크롤 뷰에서 3 개의 로그인 컨트롤 (사용자 이름과 암호 용 텍스트 상자)을 표시하기 위해 HorizontalScrollView을 맨 위에 둔 안드로이드 용 응용 프로그램을 설계하고 있습니다. 나는 당신이 아래 이미지에서 볼 수있는 것처럼 화면의 전체 너비를 차지하지 않는 하나의 사소한 결함을 제외하고는 원하는 것을 거의 달성했다. 너비를 fill_parent으로 만들려면 어떻게해야합니까?레이아웃을 고치는 데 도움이 필요합니다

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:panel="http://schemas.android.com/apk/res-auto" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#CCC" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <org.miscwidgets.widget.Panel 
     android:id="@+id/mytopPanel" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     panel:animationDuration="1000" 
     panel:closedHandle="@drawable/top_switcher_collapsed_background" 
     panel:content="@+id/mypanelContent" 
     panel:handle="@+id/mypanelHandle" 
     panel:linearFlying="true" 
     panel:openedHandle="@drawable/top_switcher_expanded_background" 
     panel:position="top" > 

     <Button 
      android:id="@+id/mypanelHandle" 
      android:layout_width="wrap_content" 
      android:layout_height="33dip" 
      android:layout_gravity="center_horizontal" /> 

     <HorizontalScrollView 
      android:id="@+id/mypanelContent" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" > 

       <LinearLayout 
        android:id="@+id/linearLayout" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 

        <EditText 
         android:id="@+id/editTextUserName" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_margin="3dp" 
         android:layout_marginTop="6dp" 
         android:hint="@string/editUserName" > 
        </EditText> 

        <EditText 
         android:id="@+id/editTextPassword" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_margin="3dp" 
         android:hint="@string/editUserPwd" > 
        </EditText> 

        <TextView 
         android:id="@+id/textView" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:background="#323299" 
         android:gravity="center" 
         android:padding="4dip" 
         android:text="@string/drpDwnTxt" 
         android:textColor="#eee" 
         android:textSize="16dip" 
         android:textStyle="bold" /> 
       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/linearLayout1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/linearLayout" 
        android:orientation="vertical" > 

        <EditText 
         android:id="@+id/editTextUserName1" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_margin="3dp" 
         android:layout_marginTop="6dp" 
         android:hint="@string/editUserName" > 
        </EditText> 

        <EditText 
         android:id="@+id/editTextPassword1" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_margin="3dp" 
         android:hint="@string/editUserPwd" > 
        </EditText> 

        <TextView 
         android:id="@+id/textView1" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:background="#323299" 
         android:gravity="center" 
         android:padding="4dip" 
         android:text="@string/drpDwnTxt" 
         android:textColor="#eee" 
         android:textSize="16dip" 
         android:textStyle="bold" /> 
       </LinearLayout> 
      </RelativeLayout> 
     </HorizontalScrollView> 
    </org.miscwidgets.widget.Panel> 
</LinearLayout> 
</FrameLayout> 

enter image description here

+0

내 대답이 도움이된다면 개선 할 것입니다. 덕분에 –

답변

0

당신이 할 수있는 일입니다 ..이 그것을 참조하시기 바랍니다처럼 보인다. XML에서

:

1 수평 선형 레이아웃을 정의합니다.

3 개의 수직 선형 레이아웃 정의.

각 수직 선형 레이아웃 내부에 사용자 이름과 비밀번호를위한 EditText 쌍을 넣으십시오.

수평 직선 배열 안에 이들 3 개 수직 선형 레이아웃 넣어 [그들의 ​​폭 특성 "fill_parent"은 즉 editTexts 각각 그들이 배치되는 내부 수직 선형 레이아웃 폭을 작성해야되는지 확인]. 자바

는 :

디스플레이의 폭의 3 배의 폭을 갖도록 (다른 세 개의 레이아웃을 포함)는 수평 직선 배열을 확인.

Display display = getWindowManager().getDefaultDisplay(); 
     int width = display.getWidth(); 
     int height = display.getHeight(); 
     horizontalLayout = (LinearLayout) findViewById(R.id.yourHorizonatalLinearLayout); 
     horizontalLayout.setLayoutParams(new LinearLayout.LayoutParams(
       (width * 3), height)); 

이제 (수평 직선 레이아웃 내에 배치하고 사용자 이름과 패스워드 필드의 쌍을 포함하고있다)의 수직 선형 레이아웃의 각각은 상기 장치 디스플레이의 폭과 넓이가 동일하게 대한.

아래의 코드는 수직 선형 레이아웃 중 하나를위한 코드이며 나머지 두 개에도이 코드를 반복해야합니다. 비슷한 코드 조각, 그냥 ID를 변경하십시오.

firstEditLayout = (LinearLayout) findViewById(R.id.yourFirstVerticalLinearLayout); 
     firstEditLayout.setGravity(Gravity.CENTER_VERTICAL); 
     firstEditLayout.setLayoutParams(new LinearLayout.LayoutParams(
       (width), height)); 

P. 나는 당신이 이해하기에 충분할만큼 분명했으면 좋겠다.

+0

귀하의 제안에 따라 변경 후 응용 프로그램이 강제로 닫는 시작' 09/20 23 : 58 : 50.360 : E/AndroidRuntime (2199) : 치명적인 예외 : 주 09-20 23 : 58 : 50.360 : E/AndroidRuntime (2199) : java.lang.ClassCastException : android.widget.LinearLayout $ LayoutParams 09-20 23 : 58 : 50.360 : E/AndroidRuntime (2199) : \t android.widget.FrameLayout.onLayout (FrameLayout.java:293) 09-20 23 : 58 : 50.360 : E/AndroidRuntime (2199) : android.widget.HorizontalScrollView.onLayout (HorizontalScrollView.java:1297) \t 09-20 23:58:50.360 : E/AndroidRuntime (2199) : \t android.view.View.layout (View.java:7175) ' –

+0

예, FrameLayout을 LinearLayout으로 변환하려고했기 때문에 가능합니다. 나도 같이 일어났다. LinearLayout 만 가져오고 FrameLayout은 가져 오지 않도록하십시오. – Swayam

0

친애하는 나 또한이 코드를 사용 그래서 그것을 해결이 문제에 직면하고 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relLayoutLogin" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/bkg_poi_ipad" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:id="@+id/tabRowHeader" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/heder_poi_ipad" > 

     <Button 
      android:id="@+id/btnBack" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:background="@drawable/img_btn_back" /> 

     <TextView 
      android:id="@+id/lblTitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:text="@string/loginTitle" 
      android:textColor="#000000" 
      android:textSize="30dp" 
      android:textStyle="bold" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/linearLogin" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/lblUsername" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/usernameTitle" 
      android:textColor="#FFFFFF" 
      android:textSize="20dp" /> 

     <EditText 
      android:id="@+id/txtUsername" 
      android:layout_width="200dp" 
      android:layout_height="wrap_content" 
      android:inputType="text" /> 

     <TextView 
      android:id="@+id/lblPassword" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="@string/passwordTitle" 
      android:textColor="#FFFFFF" 
      android:textSize="20dp" /> 

     <EditText 
      android:id="@+id/txtpassword" 
      android:layout_width="200dp" 
      android:layout_height="wrap_content" 
      android:inputType="textPassword" /> 

     <Button 
      android:id="@+id/btnLogin" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:background="@drawable/btn_login_ipad" /> 
    </LinearLayout> 

</RelativeLayout> 

`의 여기 enter image description here

+0

내 질문을 다시 읽고 .. ** 내 HORIZONTALSCROLLVIEW 즉 사용자 이름과 비밀 번호에 대한 3 쌍 총 6 textboxes (EditText) 총 싶습니다. ** –

관련 문제