2013-08-21 1 views
0

Указанный код работает только отлично, но я хочу еще немного.TextView inflater и Fragmen vis code

@Override 
public View onCreateView(LayoutInflater inflater, 
    ViewGroup container, 
    Bundle savedInstanceState) 
{ 
    Log.i(TAG, "HelpDetailsFragment.onCreateView() getCurrentIndex(): "+getCurrentIndex()); 

    Log.i(TAG, "HelpDetailsFragment.onCreateView() container.getChildCount() first log: "+container.getChildCount()); 

    FrameLayout frameLayout = new FrameLayout(getActivity()); 

    TextView headerText = (TextView) new TextView(getActivity()); 

    // headerText.inflate(getActivity(), R.id.textView1, null); 

    int height = (int) TypedValue.applyDimension(
       TypedValue.COMPLEX_UNIT_DIP, 50, getActivity() 
       .getResources().getDisplayMetrics()); 
    headerText.setHeight(height); 
    headerText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); 
    headerText.setText(HelpScreenData.HELP_HEADERS[getCurrentIndex()]);  

    frameLayout.addView(headerText); 

    return frameLayout; 

}

Я пытаюсь настроить внешний вид текста еще немного со значениями из файла XML с помощью закомментированной линии. Но это не сработает, может/будет кто-то помогать?

ответ

0

Прежде всего, не создавайте свои макеты! Я настоятельно рекомендую использовать макеты на основе XML. Затем в вашем методе onCreateView() раздуйте свой XML-макет и верните его.

Пример:

@Override 
public View onCreateView(LayoutInflater inflater, 
    ViewGroup container, 
    Bundle savedInstanceState) 
{ 

    View v = inflater.inflate(R.layout.my_layout, null); //my_layout is your layout defined in XML 

    TextView textView = v.findViewById(R.id.my_textview); 
    Button button = v.findViewById(R.id.my_button); 
    //do whatever with your textView, set OnClickListener to button etc...   


    return v; //return inflated layout 
} 

Я хотел бы предложить вам прочитать некоторые основные учебники о макетах в Android Dev website.

+0

Спасибо за отзыв, но это предложение оставляет меня с: «AndroidRuntime (615): Caused by: java.lang.IllegalStateException: указанный ребенок уже имеет родительский элемент. Сначала вы должны вывести removeView() родительского элемента" Это сообщение, которое я имел в разное время, и я не знаю, как обойти его. – PageMaker

+0

изменить линию inflater.inflate (R.layout.my_layout, null); с inflater.inflate (R.layout.my_layout, контейнер, false); – traninho

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