2017-10-06 98 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'。你的回答也适合我,谢谢你 –