2013-01-21 3 views
1

LinearLayout 클래스를 확장 중이지만 방향에 문제가 있습니다. 다른 Linearlayout에 만들고있는이 뷰를 추가하려고하는데 여전히 수평으로 설정되어 있습니다.linearLayout이 세로 방향으로 설정되지 않았습니다.

package com.simplemathgame; 

import java.util.Date; 

import android.content.Context; 
import android.graphics.Color; 
import android.view.Gravity; 
import android.widget.LinearLayout; 
import android.widget.TableLayout; 

public class GraphBar extends LinearLayout { 
    private Date date; 
    private int totalDrills; 
    private int rightDrills; 
    private int score; 
    private int height; 
    private final int widht = 30; 
    private final int totHeight = 300; 
    LinearLayout.LayoutParams barParams; 

    public GraphBar(Context context, int totalDrills, int rightDrills, Date date) { 
     super(context); 
     this.date = date; 
     this.rightDrills = rightDrills; 
     this.totalDrills = totalDrills; 

     this.setScore(); 
     setParams(); 
     this.barParams = new LinearLayout.LayoutParams(0,this.widht); 
    } 

    private void setScore(){ 
     this.height = (this.rightDrills/this.totalDrills) * totHeight; 
    } 

    private void setParams(){ 
     this.barParams = new LinearLayout.LayoutParams(this.height,this.widht); 
     this.barParams.setMargins(5, 0, 0, 0); 
     this.setBackgroundColor(Color.CYAN); 
     this.setOrientation(LinearLayout.VERTICAL); 
     this.setGravity(Gravity.BOTTOM); 
     this.setLayoutParams(this.barParams); 
    } 
} 

내가 에뮬레이터 내 아수스 태블릿 모두에서 볼려고 : 다음은 코드입니다. 아이디어가 있습니까? 감사!

+0

죄송이 질문에 대답하지 않지만 레이아웃/뷰 그룹을 강화하지 않고 레이아웃/뷰 그룹 클래스의 모든 유형을 확장 왜 난 그냥 궁금하네요 기능. OO 디자인이 실제로 작동하는 방식이 아닙니다. 예를 들어, 레이아웃/뷰 그룹이 날짜가 무엇인지 알아야하는 이유는 무엇입니까? – Squonk

+0

은 그래프 막대이기 때문에 사용자가 손을 잡고 있으면 날짜가 표시됩니다. – vlio20

+1

나는 여전히 당신의 논리를 이해하지 못한다 - 레이아웃 XML 파일에서'setParams()'메소드로 모든 것을 할 수 있지만, 어떻게 할 것인지 당신에게 맡긴다. 귀하의 문제에 대한 한 가지 가능한 이유는'LinearLayout.LayoutParams (int width, int height)'입니다 - 당신은'height, width'로 그것을 설정하고 있습니다. – Squonk

답변

1

전화 LinearyLayout를 확장하는 클래스의 생성자에서이 방법 setOrientation(LinearLayout.VERTICAL);

관련 문제