2013-01-21 1 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); 
    } 
} 

Я попытался увидеть его как в эмуляторе и моей Asus таблетки. любые идеи? Благодаря!

+0

К сожалению, это не ответа на ваш вопрос, но я просто интересно, почему вы бы расширить любой тип класса компоновки/ViewGroup без повышения его компоновка/ViewGroup функциональность. На самом деле это не так, как должен работать OO-дизайн. Например, почему макет/группа просмотра должны знать, что такое дата? – Squonk

+0

, потому что это будет панель графика, и когда пользователь коснется ее, он увидит дату. – vlio20

+1

Я все еще не понимаю вашу логику - вы можете сделать все в своем методе 'setParams()' в XML-файле макета, но я полагаю, что вам решать, как вы хотите это сделать. Одной из возможных причин вашей проблемы является 'LinearLayout.LayoutParams (int width, int height)' - вы устанавливаете ее с помощью 'height, width'. – Squonk

ответ

1

Вызов этого метод в конструкторе класса, который расширяет LinearyLayout setOrientation(LinearLayout.VERTICAL);

Смежные вопросы