0

그래서 농구와 일반적인 굴곡을 뛰어 넘는 우스운 이야기 끝에 나는 안드로이드가 초등의 필수 작업을 수행 할 것을 확신했습니다. 즉, 여러 레이아웃과 관련 변수가있는 조회수를 0으로 생성하고이를 다른보기에 삽입하여 수직으로 쌓을 수 있습니다.안드로이드에서 동적으로 생성 된 중첩 된 조각을 사용한 세로 배치

글쎄요.

안드로이드는 마지 못해 내가 읽은 후 모든 의견을 포함하기로 합의하고 this question. 문제의 의견 스택하지 않을 것이다, 또는 적어도 안드로이드, 나를 조롱하는 것처럼 "스택이다

public void setPeriods(ArrayList <HashMap> periods) { 
    for(HashMap<String, Object> period: periods){ 
     FragmentManager childFragMan = getChildFragmentManager(); 

     FragmentTransaction childFragTrans = childFragMan.beginTransaction(); 
     ForecastPeriod forecastPeriod = new ForecastPeriod(); 
     childFragTrans.add(R.id.forecast_period, forecastPeriod); 
     childFragTrans.commit(); 
     forecastPeriod.setTitle((String)period.get("name")); 
    } 
} 

의 코드를 수정 "그들은 Z 비행기에 있기 때문에 서로 완전히 겹칩니다. 어떻게 이럴 수있어?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:paddingTop="20dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp" 
    android:paddingBottom="0dp" 
    tools:context="com.blah.deblah.ForecastPeriods"> 

    <fragment 
     android:id="@+id/forecast_period" 
     android:name="com.blah.deblah.ForecastPeriod" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     tools:layout="@layout/fragment_forecast_period" /> 

</LinearLayout> 

이 녀석들을 수직으로 쌓아 올릴 수 있도록 XML을 바꿀 수 있습니까?

다음은 삽입 될 단편에 대한 XML입니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context="com.blah.deblah.ForecastPeriod"> 

     <TextView 
      android:id="@+id/period_title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top|center" 
      android:fontFamily="sans-serif-bold" 
      android:gravity="start" 
      android:singleLine="true" 
      android:text="@string/title" 
      android:textColor="#cccccc" 
      android:textSize="24dp" /> 

     <TextView 
      android:id="@+id/period_headline" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top|center" 
      android:layout_below="@id/period_title" 
      android:layout_marginTop="20dp" 
      android:fontFamily="sans-serif-light" 
      android:maxHeight="90dp" 
      android:gravity="left" 
      android:text="@string/loremipsum" 
      android:textColor="#cccccc" 
      android:textSize="24dp" /> 

     <TextView 
      android:id="@+id/period_body" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top|center" 
      android:layout_below="@id/period_headline" 
      android:layout_marginTop="20dp" 
      android:fontFamily="sans-serif-light" 
      android:gravity="left" 
      android:text="@string/loremipsum" 
      android:textColor="#cccccc" 
      android:textSize="18dp" /> 

</RelativeLayout> 

답변

1

당신이 많은 어려움을 겪고있는 이유는 파편에 대한 이해가 근본적으로 올바르지 않기 때문입니다. this question을 참조하십시오. 나는 그것들을 이해하는 데 어려움을 겪었을 때,이 모든 것들을 크게 제거했습니다. 안드로이드는 당신이 시도하는 것처럼 단편을 사용하는 것을 원하지 않기 때문에, 기대하는 바를하지 않을 것입니다.

일반적으로 단편은 반드시 하나의 UI 구성 요소 일 필요는 없으며 다른 UI 구성 요소보다 훨씬 더 많이 작동하는 활동처럼 기능하여 훨씬 유용합니다. Fragment as를 사용하려고 할 때 실제로 사용자 지정 View 또는 ListView를 사용하여 수행해야합니다.

제쳐두고, 코드에서 단편을 잘못 선언하는 것입니다. 패키지 이름을 XML 태그로 사용하거나 FrameLayout을 사용하여 지정된 FrameLayout에 단편을 삽입해야합니다 (<fragment>)

+0

활동과 단편의 존재가 질문을 던지더라도 요점을 봅니다. 두 가지 활동이있는 이유와 iOS에서와 같이 하위 분류보기를 사용하여 동일한 목표를 모두 달성 할 수없는 이유는 무엇입니까? – NFG

+0

글쎄 하나, 그리고 이것은 모든 프로그래밍 언어에 대한갑니다, 안드로이드는 안드로이드입니다. iOS가 아니므로 iOS 측면에서 생각하지 마십시오. 별도로 살펴보고 Android가 무엇인지, 어떻게 작동하는지 이해하려고 노력하십시오. 다른 운영 체제이므로 이와 같이 처리해야하기 때문입니다. – cjbrooks12

+0

실제로 조각을보기로 바꾸고 ViewGroup에 삽입하면 원하는대로 정확하게 작업 할 수 있습니다. 감사. – NFG