2014-01-28 4 views
0

В моем onCreateView У меня есть следующие коды для заполнения пользовательского представления в моем LinearLayout, в котором StageViewer распространяется View.Невозможно обновить пользовательский вид в макете

layout = (LinearLayout)rootView.findViewById(R.id.lo1);  

for (int i = 0 ; i < 6 ; i ++) 
{ 

    StageViewer viewer = new StageViewer(i,callingActivity,this, 0, Global.STAGE_VIEW); 
    layout.addView(viewer); 
    stageList.add(viewer);   
} 

В моем приложении пользователь имеет возможность установить все представление в режим по умолчанию

public void resetToDefault() 
{ 

    for (int i = 0 ; i < 6 ; i ++) 
    { 

    StageViewer viewer = new StageViewer(i,callingActivity,this, 0, Global.STAGE_VIEW); 
    layout.addView(viewer); 
    stageList.add(viewer);  

    } 

} 

Однако после сброса нового взгляда не могут быть просмотрены (пустой макет показан).

Я попытался

viewer.invalidate(); 
layout.refreshDrawableState(); 

Я пропустил что-то?

+0

Действительно ли ваш «StageViewer» отображается в статическом макете? –

+0

есть. он отображается на статическом макете. он также появляется, когда он заполняется в inital onCreateView call – sean

ответ

0
public void resetToDefault() 
{ 
    layout.removeAllViews(); 
    stageList.clear(); 
    for (int i = 0 ; i < 6 ; i ++) 
    { 

    StageViewer viewer = new StageViewer(i,callingActivity,this, 0, Global.STAGE_VIEW); 
    layout.addView(viewer); 
    stageList.add(viewer);  
    } 

} 
+0

Привет, я попробовал ваше решение, но все тот же. Любая другая возможность? Спасибо – sean

0

Возможно, параметры макета отсутствуют?

LinearLayout.LayoutParams layoutParams = 
    new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, 
     LinearLayout.LayoutParams.WRAP_CONTENT); 
viewer.setLayoutParams(layoutParams); 
layout.addView(viewer); 
+0

привет, попробовал добавить свой код, но он все тот же. – sean

+0

Проверьте результирующий макет в иерархии дампа. Вы увидите границы или свои взгляды. Таким образом, может помочь локализация проблем. –

+0

Hi beworker, После многого устранения неполадок я обнаружил, что onMeasure или пользовательское представление дают ширину 160 при создании встроенного файла (через oncreateview). однако он показывает ширину 0 для resettodefault. – sean

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