【发布时间】:2016-12-08 08:16:41
【问题描述】:
我有一个按钮,我想在每次单击图像视图时使其可见和不可见。 我试过设置不可见/可见,但它不起作用。
这是我的代码:
public class FullScreenImageAdapter extends PagerAdapter {
Button btnClose;
private Activity _activity;
private ArrayList<String> _imagePaths;
private LayoutInflater inflater;
// constructor
public FullScreenImageAdapter(Activity activity,
ArrayList<String> imagePaths) {
this._activity = activity;
this._imagePaths = imagePaths;
}
@Override
public int getCount() {
return this._imagePaths.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
TouchImageView imgDisplay;
inflater = (LayoutInflater) _activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container,
false);
hideBar();
imgDisplay = (TouchImageView) viewLayout.findViewById(R.id.imgDisplay);
btnClose = (Button) viewLayout.findViewById(R.id.btnClose);
Picasso.with(_activity)
.load(_imagePaths.get(position))
.placeholder(R.drawable.loader)
.fit()
.centerCrop().into(imgDisplay);
// close button click event
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
_activity.finish();
}
});
imgDisplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideBar();
hideButton();
}
});
((ViewPager) container).addView(viewLayout);
return viewLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);
}
public void hideBar() {
View decorView = _activity.getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
public void hideButton() {
if (btnClose.isShown()){
btnClose.setVisibility(View.INVISIBLE);
}else{
btnClose.setVisibility(View.VISIBLE);
}
}
}
这是我的 xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.shaka.we.ImageHelper.helper.TouchImageView
android:id="@+id/imgDisplay"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:scaleType="fitCenter" />
<Button
android:id="@+id/btnClose"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:background="@drawable/redx"
android:paddingBottom="2dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="2dp"
android:visibility="invisible"/>
</RelativeLayout>
有人可以帮我吗?
【问题讨论】:
-
代码的哪一部分负责使其可见?
-
您是否尝试过放入日志或断点以查看是否到达了您期望的代码块?
-
你可以查看这个问题寻求帮助:stackoverflow.com/questions/6796299/…
-
我查过了。它对我不起作用。我会继续寻找。谢谢。
标签: android xml visibility