2017-10-06 45 views
-2

我有一個TabWidget,裏面有一些片段。我想在其中顯示ProgressBar,但ProgressBar從不顯示。這裏我的代碼:ProgressBar Programaticaly in Fragment

private ProgressBar progressBar; 

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

    View view = inflater.inflate(R.layout.roomstatusadmin_activity, container, false); 

    progressBar = new ProgressBar(getActivity().getApplicationContext(), null, android.R.attr.progressBarStyleSmall); 
    progressBar.setIndeterminate(true); 
    progressBar.setVisibility(View.VISIBLE); 
    //FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
    //layoutParams.gravity = Gravity.CENTER; 
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT); 
    layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); 
    progressBar.setLayoutParams(layoutParams); 

    return view; 
} 

我讀了一些問題,但沒有解決方案,如this。我測試與ProgressBar添加到我的layout.xml和ProgressBar是顯示。但我會在一些佈局中使用這個ProgressBar,所以我真的需要它programmaticaly。提前致謝。

+0

刪除'getApplicationContext後添加到父佈局()' –

回答

1

您正在創建一個進度條,而不是連接到view.To附上到frgament視圖找到fargment的父佈局的id。

YOURPARENTLAYOUT layout=(YOURPARENTLAYOUT)view.findViewById(R.id.yourParentLayout) 

,並在年底創建進度

layout.addView(progressBar); 
+0

哦,我明白了。現在它的節目感謝 –

+0

您最歡迎:) – Anonymous

+0

如何使它中心水平和垂直? –

2

您還沒有將進度條添加到片段的佈局。
膨脹您的佈局xml並轉換爲其根視圖。如果你的根視圖是一個RelativeLayout的,則:
RelativeLayout view = (RelativeLayout)inflater.inflate(R.layout.roomstatusadmin_activity, container, false);

的進度現在添加到佈局:
view.addView(progressBar);

+0

你確定嗎?我認爲'view'是一個'View'類型,它沒有'addView'。但'容器'有'addView',但它仍然不起作用。但我會盡力答覆 –

+0

我的答案中的'view'是一個'RelativeLayout',它是一個'ViewGroup',它包含一個'addView(View v)'方法。 – Neeraj

+0

我認爲有誤會。關於我上面的代碼,'view'是一個'View',你讓我用'Layout'類型回答'view'。你的回答也適合我,謝謝你 –

相關問題