我正在学习android开发,我试图制作一个简单的导游应用程序。
我使用了两个不同的类和相应的适配器来实现这一目标。与问题相关的适配器有ImageView
和两个TextView
。
其中一个位于图像顶部,另一个位于图像下方。
这就是它的外观
片段的第一个实例的布局
然后我重复使用Fragment
,只有ImageView
存在。
不知何故,第一个实例中TextView
的一部分正在爬进这个实例。就像在这张图片中一样
蓝色部分是textview背景颜色
现在代码
以下是XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e2f1f8"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<FrameLayout
android:id="@+id/image_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp">
<ImageView
android:id="@+id/Place_image_view"
android:layout_width="match_parent"
android:layout_height="250dp"
android:foreground="@drawable/gradient"
android:scaleType="centerCrop"
android:src="@drawable/edpl_min" />
<TextView
android:id="@+id/place_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_margin="10dp"
android:text="@string/town_name"
android:textColor="#FFFFFF"
android:textSize="36sp"
android:textStyle="bold" />
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="#42a5f5">
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
android:text="@string/description"
android:textColor="#000000"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
以下是此布局的自定义类:
package com.example.sharathprakash.tourguide;
/**
* Created by Sharath Prakash on 10/15/2017.
*/
public class Info {
private String mplacename;
private int mImageResource;
private String mdescription;
private static final int NO_TEXT_PROVIDED = -1;
public Info(String placename, String description, int imageresource) {
mplacename = placename;
mdescription = description;
mImageResource = imageresource;
}
public Info(int imageresource, String placename) {
mImageResource = imageresource;
mplacename = placename;
}
public String getplacename() {
return mplacename;
}
public String getdescription() {
return mdescription;
}
/* public boolean hasText(){
return mImageResource != NO_TEXT_PROVIDED;
}*/
public int getImageResource() {
return mImageResource;
}
}
以下是适配器:
package com.example.sharathprakash.tourguide;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by Sharath Prakash on 10/15/2017.
*/
public class InfoAdapter extends ArrayAdapter<Info> {
public InfoAdapter(Activity Context, ArrayList<Info> inf) {
super(Context, 0, inf);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.info_fragment_layout, parent, false);
}
Info currentnumber = getItem(position);
TextView placetextview = (TextView) listItemView.findViewById(R.id.place_text_view);
TextView descriptiontextview = (TextView) listItemView.findViewById(R.id.description);
ImageView Placeimageview = (ImageView)
listItemView.findViewById(R.id.Place_image_view);
placetextview.setText(currentnumber.getplacename());
descriptiontextview.setText(currentnumber.getdescription());
Placeimageview.setImageResource(currentnumber.getImageResource());
return listItemView;
}
}
我的问题是如何在第二张图片中隐藏此TextView
?
此外,向ImageView
添加投影的任何方式都将非常有用。
答案 0 :(得分:0)
您可以隐藏TextView:
descriptiontextview.setVisibility(View.GONE);
当你想隐藏它时。
再次展示:
descriptiontextview.setVisibility(View.VISIBLE);
此外,您可以在TextView .xml:
中默认设置此属性android:visibility="gone"