2013-03-30 2 views
5

시간 초과 이벤트로 Android 앱을 제작 중이며 타임 라인을 빌드하는 데 레이아웃을 사용해야하는지 잘 모르겠습니다.사용자 정의보기를 사용하여 타임 라인 빌드

이벤트의 높이가 다를 수 있으며 사용자가 탭을 클릭해도 이벤트의 너비가 같을 수 있습니다.

   . 
       . 
       . 
------------- | 
| Event 4 > | -------------- 
------------- | < Event 7 | 
       | |   | 
       | -------------- 
       . 
       . 
       . 

나는 두 가지보기 유형이 있습니다

  • EventView 마녀는 자신의 개요
  • TimeBarView 마녀 이벤트 정보를 보유하고 드로우는 중간에있는 바 (일부 속성을 가지고 있으며 매우에 확장 롱 스팬

타임 라인에서 시간을 존중하도록 (예 : 1 주일은 10px 일 수 있음)

도움을 주시면 감사하겠습니다. 감사합니다.

+0

이보기를 만드는 데 성공 했습니까 ?? 코드를 공유하십시오. –

+0

@Romain 어떤 성공 ..? 회신 해주십시오. –

+0

@Pankaj Kumar 성공하셨습니까? –

답변

1

나는 지금 같은 문제를 다루고있다.

은 아직 완전한 해결책이없는,하지만 난 생각이 : 타임 라인에 측면에 가지고 있기 때문에 이벤트가 겹칠 수 있기 때문에

, ListView이 적절하지입니다.

대신 2 열 GridView을 사용하는 것이 좋습니다. 다른 항목 크기를 지원하는 AndroidStaggeredGrid을 사용하는 것이 좋습니다.

중간에 실행되는 실제 "시간 표시 막대"의 경우 GridView의 배경으로 좁은 선을 사용하기 만합니다.

타임 라인에 마커가 없습니다. 대신 마커는 Left 또는 Right 중 하나의 EventView 자체에 표시되어 마커가 시간 표시 막대에 정확하게 표시됩니다.

그리드를 스크롤하면 시간 표시 막대 자체가 스크롤되는 것처럼 보일 것입니다.

빈 시간 간격을 나타 내기 위해서는 높이가 빈 화면을 추가하기 만하면됩니다.

희망 ...

+0

그 것이었을 것입니다 :) – Romain

0

레이아웃 중에 무슨 일이 일어나는지 정확하게 판단 할 수있는 정보가 충분하지는 않지만 RelativeLayout이 필요한 작업을 수행 할 것입니다. leftMargin을 절대 위치로 사용하거나 RelativeLayout과 같은 "규칙"을 사용할 수 있습니다 .LEFT_OF

그렇다면 Android 프레임 워크로 맞춤 레이아웃을 만드는 것은 매우 쉽습니다. onMeasure 및 onLayout을 재정의하십시오. onMeasure는 컨테이너가 얼마나 큰지보고해야하며 (종종 부모와 마찬가지로 크기가 크다), 꽤 간단하다.

onLayout은 일반적으로 다음과 같습니다

@Override 
protected void onLayout(boolean changed, int l, int t, int r, int b) { 
    int count = getChildCount(); 
    for (int i = 0; i < count; i++) { 
     View child = getChildAt(i); 
     if (child.getVisibility() != GONE) { 
      // do the layout for each child here, with child.layout 
      // e.g., child.layout(0, 0, r, b); 
    } 
} 

View.layout 4 개 인수한다 - 위, 왼쪽, 아래, 오른쪽 - 아주 간단합니다. l, t, r 및 b로 컨테이너의 크기에 액세스 할 수 있습니다.

HTH

관련 문제