-1

나는 이차 수식을 사용하여 이차 계산을 수행 할거야 응용 프로그램을 만들고있어. 방정식을 풀기위한 단계를 나타내려면 각 단계에 ListView 항목으로 ListView을 사용하고 있습니다. 하지만, 방정식을 행으로 표시하기 위해 만든 사용자 정의 레이아웃은 ListView입니다. 응용 프로그램을 실행하면 완전히 엉망이되고 있습니다. device screen안드로이드 - 사용자 정의 레이아웃 ListView 내부 엉망이

난 그냥 뭐가 잘못 됐는지 알아낼 수 없습니다, 나는 모든 가능한 솔루션을 시도했다 : 여기 실제로처럼 찾고 무엇을, layout

과 : 여기

는 어떻게 보일지입니다 인터넷에서 찾았습니다. 여기

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="1.5dp" 
    android:id="@+id/imageView2" 
    android:src="@drawable/line" 
    android:paddingLeft="50dp" 
    android:paddingRight="50dp" 
    android:layout_centerInParent="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:text="or," 
    android:id="@+id/textView4" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:textSize="20sp" 
    android:paddingLeft="5dp" 
    android:textColor="#FFFFFF" 
    android:layout_centerHorizontal="true" 
    android:layout_alignBottom="@+id/main_equation_deno" 
    android:layout_alignTop="@+id/main_equation_num" 
    android:gravity="center_vertical" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="-b ± √(b - 4ac)" 
    android:id="@+id/main_equation_num" 
    android:textSize="30sp" 
    android:textColor="#FFFFFF" 
    android:gravity="center_vertical|center_horizontal" 
    android:layout_above="@+id/imageView2" 
    android:paddingBottom="3dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:text="2" 
    android:id="@+id/square" 
    android:layout_marginBottom="25dp" 
    android:textColor="#FFFFFF" 
    android:textSize="15sp" 
    android:textIsSelectable="false" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:gravity="center_horizontal" 
    android:layout_marginLeft="25dp" 
    android:layout_alignBottom="@+id/imageView2" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="2a" 
    android:id="@+id/main_equation_deno" 
    android:layout_below="@+id/imageView2" 
    android:textSize="30sp" 
    android:textColor="#FFFFFF" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:gravity="center_horizontal" /> 

</RelativeLayout> 

그리고 내 목록 어댑터의 :

public class StepListAdapter extends ArrayAdapter<Step> { 

private Context mContext; 
private ArrayList<Step> mSteps = new ArrayList<Step>(); 

public StepListAdapter(Context context, ArrayList<Step> steps) { 
    super(context, 0, steps); 

    this.mContext = context; 
    this.mSteps = steps; 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View view = inflater.inflate(R.layout.step_row, parent, false); 

     TextView main_num = (TextView) view.findViewById(R.id.main_equation_num); 
     TextView main_deno = (TextView) view.findViewById(R.id.main_equation_deno); 

     main_num.setText(mSteps.get(position).getNum()); 
     main_deno.setText(mSteps.get(position).getDeno()); 

    return view; 
    } 
} 

이 문제에 관한 어떤 도움 것은 매우 높이 평가된다은

여기 내 사용자 지정 레이아웃의 XML 코드입니다. 고맙습니다.

+0

다음과 같이하면됩니다. 'android : layout_below = "@ + id/imageView2"'(** ** ** **를 염두에두면) ** 새 ID **를 만듭니다. ** 기존 ID를 참조하는 올바른 방법은'android : layout_below = "@ id/imageView2"'(** 더하기 부호 없음 **)입니다. 이것이 다른 모든 뷰보다 ** android : id = "@ + id/imageView2"** ** 앞에 선언 한 이유입니다. –

+0

그러나, 나는 그것을하지 않았다. Android Studio의 그래픽 편집기가 그랬습니다! – Swap

+0

안드로이드 스튜디오는 이클립스에서 배울 많은 것들을 가지고 있습니다 ... –

답변

1

보십시오, 나는 당신의 XML의 일부를 변경 한

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal|bottom" > 

     <TextView 
      android:id="@+id/main_equation_num" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="-b ± √(b - 4ac)" 
      android:textColor="#FFFFFF" 
      android:textSize="30sp" /> 

     <TextView 
      android:id="@+id/square" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:text="2" 
      android:layout_marginLeft="105dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#FFFFFF" 
      android:textIsSelectable="false" 
      android:textSize="15sp" /> 

    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="5dp" 
      android:text="or," 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#FFFFFF" 
      android:textSize="20sp" /> 

     <View 
      android:id="@+id/imageView2" 
      android:layout_width="0dp" 
      android:layout_height="1.5dp" 
      android:layout_weight="1" 
      android:background="#ffffff" 
      android:paddingLeft="50dp" 
      android:paddingRight="50dp" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/main_equation_deno" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="2a" 
     android:textColor="#FFFFFF" 
     android:textSize="30sp" /> 

</LinearLayout> 

는이 XML을 붙여 복사합니다.

희망이 있으면 어떻게 든 도움이됩니다.

+0

내가 도움이되는지 알려주세요. –

+0

** 불필요한 추가 레벨 중첩 **을 소개합니다. –

+0

@Der Golem,이 질문에 대해서는 레이아웃에 불필요한 중첩을 도입하고 있습니다. 어떻게 든 그것을 바꾸면 도움이 될 것입니다. –

1

당신은 다른 방법으로 행을 부풀려 시도 할 수 있습니다 :

보기보기 = inflater.inflate (R.layout.step_row, 널을);

또는 최소 행 높이를 설정하십시오. 편집 :이 레이아웃을 사용하는

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:minHeight="400dp"> 
... 
+0

불행히도, 해결책 중 아무 것도 작동하지 않습니다. – Swap

관련 문제