XML : Visibility issue with a view inside fragment

I am having a weird issue in my app. In one of my app activity I am inflating three fragments in it with tabs. Everything works fine. In the fragment in which I am having problem, I have listview which is inflated using adapter and data fro web service. This also works well. Now the problem is this the row which is inflated in adapter, has a hidden view which has visibility=gone in xml. On tap of imageview from that row I make that layout visible through java code. The problem is layout doesn't become visible on tap. I have even set breakpoint on the onClickListener of imageview and it does execute the line which changes the visibility from gone to visible. I am unable to understand what is causing this issue as I am using the same row xml with same data in other screen and there it is working perfectly.

Here is the code

  public class FragmentBirdRoutes extends Fragment {  AppSharedPreferences appSharedPreferences;  String REGISTER_URL="";  ListView lv_birds;  private ArrayList<BirdsDataBean> birdsUrlList;  @Nullable  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {      ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragments_birds, null);      appSharedPreferences=AppSharedPreferences.getsharedprefInstance(getActivity());       REGISTER_URL = "http://192.241.162.63/appvist/v1/routebird/"+appSharedPreferences.getRouteId();      birdsUrlList = new ArrayList<>();      lv_birds = (ListView) root.findViewById(R.id.lv_bird);      hitBirdsService();      return root;  }  private void hitBirdsService() {      class RegisterUser extends AsyncTask<String, Void, String> {          private ProgressDialog mDialog;          RequestClass ruc = new RequestClass();          String response = "";            @Override          protected void onPreExecute() {              super.onPreExecute();              mDialog = new ProgressDialog(getActivity());              mDialog.setMessage("Please Wait ...");              mDialog.setCancelable(false);              mDialog.show();          }            @Override          protected void onPostExecute(String s) {              super.onPostExecute(s);              mDialog.dismiss();              parseBirdResponse(response);              //Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show();          }            @Override          protected String doInBackground(String[] params) {                response = RequestClass.GET(REGISTER_URL);                return response;          }      }        RegisterUser ru = new RegisterUser();      ru.execute();  }  public void parseBirdResponse(String response) {      //String descrip, String observaciones, String descrip_larga, String url_video, String url      try {          JSONObject jsonObject = new JSONObject(response);          Boolean error = jsonObject.getBoolean("error");          if (!error) {              JSONArray jsonArray = jsonObject.getJSONArray("birds");              for (int i = 0; i < jsonArray.length(); i++) {                  JSONObject jsonBirds = jsonArray.getJSONObject(i);                  int idave=jsonBirds.getInt("idave");                  String descrip = jsonBirds.getString("descrip");                  String observaciones = jsonBirds.getString("observaciones");                  String descrip_larga = jsonBirds.getString("descrip_larga");                  String url_video = jsonBirds.getString("url_video");                  String url = jsonBirds.getString("url");                  String nombre_cientifico = jsonBirds.getString("nombre_cientifico");                  int flag=jsonBirds.getInt("flag");                  birdsUrlList.add(new BirdsDataBean(flag,idave,descrip, observaciones, descrip_larga, url_video, url, nombre_cientifico));                }              ScheduleTaskAdapter scheduleTaskAdapter = new ScheduleTaskAdapter(getActivity(), birdsUrlList);              lv_birds.setAdapter(scheduleTaskAdapter);            }      } catch (JSONException e) {          e.printStackTrace();      }  }  public class ScheduleTaskAdapter extends BaseAdapter {      Context context;      LayoutInflater layoutInflater;      // List<InterestAndLanguageBean> interestAndLanguageBeans=new ArrayList<>();      List<BirdsDataBean> imageList = new ArrayList<>();        public ScheduleTaskAdapter(Context context, List<BirdsDataBean> imagesList) {          this.context = context;          this.imageList = imagesList;          layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);      }        @Override      public int getCount() {          return imageList.size();      }        @Override      public Object getItem(int position) {          return null;      }        @Override      public long getItemId(int position) {          return 0;      }        @Override      public View getView(final int position, View convertView, ViewGroup parent) {          ViewHolder holder = null;          if (convertView == null) {              holder = new ViewHolder();              convertView = layoutInflater.inflate(R.layout.birds_row, parent, false);              holder.iv_birds = (ImageView) convertView.findViewById(R.id.iv_bird);              holder.frameLayout = (FrameLayout) convertView.findViewById(R.id.frame_birds);              holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.detail_view);              holder.imageView = (ImageView) convertView.findViewById(R.id.up);              holder.iv_video = (ImageView) convertView.findViewById(R.id.iv_video);              holder.iv_sound = (ImageView) convertView.findViewById(R.id.iv_sound);              holder.tv_short_descript = (TextView) convertView.findViewById(R.id.tv_short_descript);              holder.tv_category = (TextView) convertView.findViewById(R.id.tv_category);              holder.tv_long_description = (TextView) convertView.findViewById(R.id.tv_long_description);              convertView.setTag(holder);          } else {              holder = (ViewHolder) convertView.getTag();          }          Uri myUri = Uri.parse(birdsUrlList.get(position).getUrl());          Glide.with(getActivity()).load(myUri).placeholder(R.drawable.birds).into(holder.iv_birds);          holder.tv_short_descript.setText(birdsUrlList.get(position).getDescrip());          holder.tv_long_description.setText(birdsUrlList.get(position).getDescrip_larga());          holder.tv_category.setText(birdsUrlList.get(position).getNombre_cientifico());          final ViewHolder finalHolder = holder;          holder.frameLayout.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View v) {                  finalHolder.linearLayout.setVisibility(View.VISIBLE);                  finalHolder.iv_sound.setOnClickListener(new View.OnClickListener() {                      @Override                      public void onClick(View v) {                          try {                              startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(birdsUrlList.get(position).getUrl_video())));                          } catch (ActivityNotFoundException e) {                              e.printStackTrace();                          }                      }                  });                  finalHolder.iv_video.setOnClickListener(new View.OnClickListener() {                      @Override                      public void onClick(View v) {                          //hitBirdSeenService(birdsUrlList.get(position).getIdave());                         // finalHolder.iv_video.setImageResource(R.drawable.eye_selected);                      }                  });              }          });          holder.imageView.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View v) {                  finalHolder.linearLayout.setVisibility(View.GONE);              }          });          //Picasso.with(context).load(myUri).placeholder(R.drawable.image).into(holder.pic);          //malevich.load(helperTaskBeanList.get(position).getImage()).into(holder.pic);          return convertView;      }    }  static class ViewHolder {      ImageView iv_birds,imageView,iv_video,iv_sound;      FrameLayout frameLayout;      LinearLayout linearLayout;      TextView tv_short_descript,tv_category,tv_long_description;  }    

}

Xml for row

      <?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="wrap_content"      android:orientation="vertical">  <FrameLayout      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:id="@+id/frame_birds"      xmlns:android="http://schemas.android.com/apk/res/android">      <ImageView          android:layout_width="match_parent"          android:layout_height="200dp"          android:scaleType="fitXY"          android:id="@+id/iv_bird"/>      <LinearLayout          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:orientation="vertical"          android:layout_gravity="bottom"          android:layout_marginBottom="5dp"          android:layout_marginLeft="10dp" >          <TextView              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:textColor="#ffffff"              android:text="@string/name"              android:textSize="24sp"              android:textStyle="bold"              android:id="@+id/tv_short_descript"/>          <TextView              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:textSize="15sp"              android:textColor="#ffffff"              android:text="@string/bird_sub_category"              android:id="@+id/tv_category"/>        </LinearLayout>  </FrameLayout>  <LinearLayout  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="vertical"  android:visibility="gone"  android:background="#ffffff"  android:id="@+id/detail_view">  <TextView      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:text="@string/bird_hidden_text"      android:textSize="20sp"      android:padding="20dp"      android:id="@+id/tv_long_description"/>  <LinearLayout      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:orientation="horizontal"      android:layout_gravity="center">      <ImageView          android:layout_width="50dp"          android:layout_height="50dp"          android:src="@drawable/eye110"          android:id="@+id/iv_video"/>      <ImageView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:src="@drawable/right"          android:layout_marginTop="25dp"          android:layout_marginLeft="15dp"          android:id="@+id/iv_next"/>      <ImageView          android:layout_width="50dp"          android:layout_height="50dp"          android:src="@drawable/ear"          android:layout_marginLeft="15dp"          android:id="@+id/iv_sound"/>  </LinearLayout>  <ImageView      android:layout_width="match_parent"      android:layout_height="20dp"      android:background="#D6D6D6"      android:layout_marginTop="20dp"      android:src="@drawable/up"      android:layout_gravity="center"      android:id="@+id/up"/>  </LinearLayout>      </LinearLayout>    

xml for the activity

     <?xml version="1.0" encoding="utf-8"?>  <!--<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:background="#ffffff">-->  <LinearLayout      android:layout_width="match_parent"      android:layout_height="match_parent"      android:orientation="vertical"      xmlns:android="http://schemas.android.com/apk/res/android">      <include layout="@layout/header_1" />  <LinearLayout      android:orientation="vertical"      android:layout_width="match_parent"      android:layout_height="50dp">    <LinearLayout      android:layout_width="match_parent"      android:layout_height="match_parent"      android:background="#000"      android:weightSum="3"      android:orientation="horizontal">      <LinearLayout          android:layout_width="0dp"          android:layout_height="match_parent"          android:layout_weight="1"          android:weightSum="1"          android:orientation="horizontal"          android:id="@+id/lin_birds">          <TextView              android:layout_width="0dp"              android:layout_height="match_parent"              android:text="@string/aves"              android:textColor="#ffffff"              android:gravity="center"              android:layout_gravity="center"              android:layout_weight="0.99"              android:id="@+id/fragment_aves"/>          <View              android:layout_width="0dp"              android:layout_height="30dp"              android:layout_weight="0.01"              android:background="#ffffff"              android:layout_marginTop="10dp"/>      </LinearLayout>      <LinearLayout          android:layout_width="0dp"          android:layout_height="match_parent"          android:layout_weight="1"          android:weightSum="1"          android:orientation="horizontal">          <TextView              android:layout_width="0dp"              android:layout_height="match_parent"              android:text="@string/routes"              android:textColor="#ffffff"              android:gravity="center"              android:layout_gravity="center"              android:layout_weight="0.99"              android:id="@+id/fragment_routes"/>          <View              android:layout_width="0dp"              android:layout_height="30dp"              android:layout_weight="0.01"              android:background="#ffffff"              android:layout_marginTop="10dp"/>      </LinearLayout>      <LinearLayout          android:layout_width="0dp"          android:layout_height="match_parent"          android:layout_weight="1"          android:orientation="horizontal">          <TextView              android:layout_width="match_parent"              android:layout_height="match_parent"              android:text="@string/information"              android:textColor="#ffffff"              android:gravity="center"              android:layout_gravity="center"              android:id="@+id/fragment_information"/>        </LinearLayout>  </LinearLayout>    </LinearLayout>      <FrameLayout          android:layout_width="match_parent"          android:layout_height="match_parent"          android:id="@+id/frame_details" />      </LinearLayout>     <!-- </ScrollView>-->    

No comments:

Post a Comment