2017-02-06 3 views
0

Привет, Я сейчас работаю над стилизацией своей формы информации о пользователе, Могу ли я спросить кого-то о том, как добиться того, когда я нажму кнопку определенного изображения, мое представление будет расширяться и наоборот.Расширяемый просмотр в Android

Образец Снимок экрана:

Если не расширен.

enter image description here

При нажатии стрелки вниз, чтобы развернуть:

enter image description here

MainActivity.java

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.support.v7.widget.Toolbar; 

import com.yoesuv.demorecyclerview.adapter.CardViewAdapter; 

public class MainActivity extends AppCompatActivity { 

    private String[] dataset; 
    private RecyclerView.Adapter adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     dataset = getResources().getStringArray(R.array.android); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     if(getSupportActionBar()!=null){ 
      getSupportActionBar().setElevation(5); 
     } 

     RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
     mRecyclerView.setHasFixedSize(true); 
     mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); 

     adapter = new CardViewAdapter(dataset); 
     mRecyclerView.setAdapter(adapter); 
    } 
} 

CardviewAdapter.java

import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.yoesuv.demorecyclerview.R; 

public class CardViewAdapter extends RecyclerView.Adapter<CardViewAdapter.ViewHolder> { 

    private String[] dataset; 

    public CardViewAdapter(String[] dataset){ 
     this.dataset = dataset; 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View itemLayout = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_row, null); 
     return new ViewHolder(itemLayout); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.tV.setText(dataset[position]); 
    } 

    @Override 
    public int getItemCount() { 
     return dataset.length; 
    } 

    public static class ViewHolder extends RecyclerView.ViewHolder{ 

     public TextView tV; 

     public ViewHolder(View itemView) { 
      super(itemView); 

      tV = (TextView) itemView.findViewById(R.id.textView_data); 
      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(v.getContext(), tV.getText().toString(), Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 
    } 
} 

Цените для любой помощи.

+0

обрабатывает видимость двух последних элементов (занятие и телефон) при щелчке изображения в вашем адаптере. – nnn

+0

привет, спасибо за ваше предложение. можете ли вы показать некоторые коды? – iamcoder

ответ

0

Вы можете просто скрыть его, и снова показать по щелчку

RelativeLayout hiddenLayout = (RelativeLayout) itemView.findViewById(R.id.hiddenLayout); 
button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(hiddenLayout.getVisibility() == View.VISIBLE) hiddenLayout.setVisibility(View.GONE); // hides layout 
       else hiddenLayout.setVisibility(View.VISIBLE); // shows layout 


      } 
     }); 

Я предлагаю положить линии Occupaction и телефонные линии в макете контейнера, так что вы можете переключить их видимость только с 2 строк кода

<RelativeLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:visibility="gone" 
android:id="@+id/hiddenLayout" > 
// put TextViews and EditTexts for Phone and Occupation here 
</RelativeLayout> 
Смежные вопросы