点击按钮后无法显示进度条

时间:2015-04-02 19:41:28

标签: java android

我想点击按钮后显示简单的圆形进度条,但它不起作用。查看我的XML

            <FrameLayout
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:visibility="visible"
                 android:layout_centerHorizontal="true"
                 android:layout_centerVertical="true"
                 android:layout_gravity="center"
                 android:gravity="center"
                 android:id="@+id/progress_layout">

            <ProgressBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/progressBar"
                android:layout_gravity="center"
                android:visibility="invisible" />
        </FrameLayout>

我的java代码

postPet = (Button) myFragmentView.findViewById(R.id.post_pet);
    postPet.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            progressBar.setVisibility(View.VISIBLE);
        }
     });

没有错误,点击后没有任何事情发生。

P.S。我在fragment&lt;创建方法

中初始化变量progressBar
    LayoutInflater infl = getActivity().getLayoutInflater();
    ViewGroup rootGroup = (ViewGroup) getActivity().findViewById(R.id.progress_layout);
    View root = infl.inflate(R.layout.fragment_new_pet_form, rootGroup);
    progressBar = (ProgressBar) root.findViewById(R.id.progressBar);

2 个答案:

答案 0 :(得分:0)

你应该将你的pb添加到xml中的按钮上,如:

  <FrameLayout
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:visibility="visible"
             android:layout_centerHorizontal="true"
             android:layout_centerVertical="true"
             android:layout_gravity="center"
             android:gravity="center"
             android:id="@+id/progress_layout">
<Button
android:id="@+id/post_pet"
your button description here />
        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar"
            android:layout_gravity="center"
            android:visibility="gone" />
    </FrameLayout>

这样它必须工作,你不需要另外给pb充气。

答案 1 :(得分:0)

尝试添加其中一个相关样式:http://developer.android.com/reference/android/widget/ProgressBar.html

您还可以将其父级的背景颜色设置为某个值,并查看是否有任何部分是不透明的:如果不是,则进度条没有宽度和高度或者不可见。

最后,您可以将hierarchyviewer与模拟器一起使用来检查布局并验证发生了什么。

此外,如果框架布局没有其他子项,请删除它并使用layout_gravity将进度条放在其父级中:不需要额外的视图组!