【发布时间】:2014-01-01 03:33:03
【问题描述】:
所以我检查了其他问题以隐藏进度条,但似乎都建议做我已经在做的事情。
我正在尝试使用
mProductListProgressBar.setVisibility(View.GONE);
我找到它了
mProductListProgressBar = (ProgressBar) mRoot.findViewById(R.id.product_list_progressbar);
我知道这是正确的进度条,因为我可以使用各种 LayoutParams 命令在屏幕上移动它。但它不会隐藏。
我当前的代码(包括进度条的移动)是
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
mProductListProgressBar.setLayoutParams(params);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
mProductListProgressBar.setLayoutParams(params);
mProductListProgressBar.setVisibility(View.GONE);
mProductListErrorTextView.setVisibility(View.VISIBLE);
mProductListErrorTextView.setText(errorMessage);
进度条移动到左侧和底部,但仍然可见。我已经尝试过 View.INVISIBLE 和 View.GONE 但都不起作用。
快把我逼疯了!
谢谢
更新 1
protected void showError(int errorMessage){
/*RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
mProductListProgressBar.setLayoutParams(params);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
mProductListProgressBar.setLayoutParams(params);
*/
mProductListProgressBar.setVisibility(View.GONE);
mProductListErrorTextView.setVisibility(View.VISIBLE);
mProductListErrorTextView.setText(errorMessage);
}
并调用它
showError(R.string.wish_list_empty);
更新 2
片段的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<GridView
android:id="@+id/product_list_gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:horizontalSpacing="@dimen/standardMargin"
android:listSelector="@android:color/transparent"
android:numColumns="@integer/columns"
android:scrollbarStyle="outsideOverlay"
android:verticalSpacing="@dimen/standardMargin" />
<RelativeLayout
android:id="@+id/product_list_header"
android:layout_width="match_parent"
android:layout_height="@dimen/refineHeaderHeight"
android:background="@drawable/product_list_header"
android:visibility="gone" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:padding="10dp"
android:src="@drawable/dropdown_image" />
<TextView
android:id="@+id/product_list_header_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center|left"
android:paddingLeft="10dp"
android:textAllCaps="true"
android:textColor="@android:color/black"
android:textIsSelectable="false"
android:textSize="@dimen/standardTextSize" />
<TextView
android:id="@+id/product_list_refine_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/button"
android:clickable="true"
android:gravity="center_vertical"
android:paddingLeft="20dp"
android:paddingRight="30dp"
android:text="@string/refine"
android:textAllCaps="true"
android:textColor="#838383"
android:textSize="@dimen/standardTextSize" />
</RelativeLayout>
<LinearLayout
android:id="@+id/product_list_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="@drawable/product_list_footer"
android:gravity="center"
android:orientation="horizontal"
android:padding="15dp"
android:visibility="gone" >
<ProgressBar
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="center"
android:layout_marginRight="10dp"
android:background="@android:color/transparent"
android:gravity="center" />
<TextView
android:id="@+id/product_list_footer_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/loading_message"
android:textAllCaps="true"
android:textSize="@dimen/standardTextSize" />
</LinearLayout>
<ProgressBar
android:id="@+id/product_list_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"/>
<TextView
android:id="@+id/product_list_error_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textAllCaps="true"
android:textSize="@dimen/standardTextSize"
android:visibility="gone" />
<TextView
android:id="@+id/debug"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#aa000000"
android:gravity="left|center_vertical"
android:minLines="2"
android:padding="10dp"
android:textColor="@android:color/white"
android:visibility="gone" />
</RelativeLayout>
【问题讨论】:
-
你能把你的整个活动课贴出来吗?
-
相对布局中是否还有其他项目的位置依赖于/“相对”于您的
mProductListProgressBar? -
@Russ 在您的片段代码中,是否有任何代码可以设置相对于
mProductListProgressBar的某些元素位置 -
@Russ 好吧,我想这可以解释它并没有让它消失。尝试传递其他东西。并检查您的
mProductListProgressBar是否未在其他地方引用,例如与进度条“相对”的其他视图位置 -
首先尝试将
null传递给 setEmptyView();看看这是否可以解决它作为一个快速的黑客。还要在你的文件中为mProductListProgressBargrep 以确保超级确定。
标签: android progress-bar visibility