0

Я хочу создать ниже макет, под которым элемент будет прокручиваться по вертикали. всякий раз, когда мы прокручиваем вверх или вниз по центру (28), текст должен быть увеличен в позиции. Я нашел эту ссылку Gallery like view with center image zoom, но они прокручиваются горизонтально, используя изображение, основанное на их требовании. мне нужно вертикально прокручивать только с помощью TextView пожалуйста, дайте мне знать, если тело знает логику .......Как увеличить/уменьшить элемент (только текст) Вертикального ScrollView в андроиде при прокрутке по вертикали

enter image description here

ответ

0

использовать эту библиотеку

Polidea view library

Поместите свой TextView в LinearLayout, который живет в ZoomView.

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

     <com.polidea.ZoomView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 

       <LinearLayout 
         android:id="@+id/myLinearLayout" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" >   
       </LinearLayout> 

     </com.polidea.ZoomView> 

</ScrollView> 
+0

жаль ответ на поздний срок ... @ sach i import project FILE-> New-> модуль импорта, расположенный в моем драйвере, следующий i clean и rebuild, а также все возможные способы определения в стеке обмена, но не работающие можно отправить мне рабочий образец кода ...... –

2

Прежде всего, благодаря @sanjay kumar был хороший вопрос. Через 2 дня я нашел лучшее решение для этого вопроса. Вы можете использовать RecyclerView и убедитесь, что LinearLayoutManager хотел бы это

LinearLayoutManager yourLinearLayout= new LinearLayoutManager(getApplicationContext()); 
yourLinearLayout.setOrientation(LinearLayoutManager.VERTICAL); 
yourLinearLayout.setLayoutManager(yearLayoutManager); 

Самая сложная проблема заключается в том, как вы можете получить среднюю позицию в recyclerView, ну я думаю, что вы можете узнать больше в этой ссылке: https://github.com/plattysoft/SnappingList

Наконец, чтобы средний элемент был больше, чем другие. В адаптере в RecyclerView должно быть, как это

public class DateAdapter extends RecyclerView.Adapter<DateAdapter.DateViewHolder> { 
private ArrayList<LabelerDate> dateDataList; 
private static final int VIEW_TYPE_PADDING = 1; 
private static final int VIEW_TYPE_ITEM = 2; 
private int selectedItem = -1; 

public DateAdapter(ArrayList<Datasource> data, int paddingWidthDate) { 
    this.dateDataList = data; 
    this.paddingWidthDate = paddingWidthDate; 

} 
@Override 
public DateViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
//todo 
} 


@Override 
public void onBindViewHolder(DateViewHolder holder, int position) { 
    Datasource data = dateDataList.get(position); 
    if (getItemViewType(position) == VIEW_TYPE_ITEM) { 

       holder.tvDate.setText(String.valueOf(data.valueDate)); 
       holder.tvDate.setVisibility(View.VISIBLE); 
       holder.imgSmall.setVisibility(View.VISIBLE); 

     if (position == selectedItem) { 
      holder.tvDate.setTextColor(Color.parseColor("#094673")); 
      holder.tvDate.setTextSize(35); 
      holder.imgSmall.setBackgroundResource(R.color.textviewbold); 

     } else { 
      holder.tvDate.setTextColor(Color.GRAY); 
      holder.tvDate.setTextSize(35); 
      holder.imgSmall.setBackgroundResource(R.color.gray); 
     } 
    } 
} 
public void setSelecteditem(int selecteditem) { 
    this.selectedItem = selecteditem; 
    notifyDataSetChanged(); 
} 
@Override 
public int getItemViewType(int position) { 
//todo 
} 
public class DateViewHolder extends RecyclerView.ViewHolder { 
    //todo 
}} 

После создания The recyclerView, адаптер и источник данных. Вы можете посмотреть onBindViewHolder(). Если элемент выбран, он станет больше и станет черным. Если он не выбран, он станет серым. Мой макет похож на ваш This is 3 RecyclerViews

0

Пользовательский вид Polidea не работал в моем случае, как есть. Если бы добавить конструктор с параметром AttributeSet, потому что он выбросил ошибку инфляции xml. Также мне пришлось сделать обертку ScrollView только TextView.

Смежные вопросы