【问题标题】:Custom Listview/Recyclerview自定义 Listview/Recyclerview
【发布时间】:2017-11-28 09:46:58
【问题描述】:

我想在 android 中实现自定义列表视图,其行从小到大的文本如下。

如果不是listview/recyclerview,那么我可以使用android的其他组件吗?

任何帮助将不胜感激。

【问题讨论】:

  • 你的意思是选择的字体是最大的吗?还是总是从小到大再到小?
  • 我认为他真正想要的是有一个包含项目的列表,当你滑动时选择了中间的那个......像this这样的东西是一个循环ListView
  • 只需使用位置作为乘数并设置文本大小。或者您可以使用文本大小的整数数组。
  • @YamenNassif 是的,它总是从小到大再到小
  • @Mehdi 看看我发布的链接

标签: android android-layout android-recyclerview android-adapter


【解决方案1】:

对于列表视图,在填充列表后,您将需要这样的东西:

private void changeSizes() {
    View v;
    View v1;
    TextView tv; // this one depends on your layout
    TextView tv1;
    int count = myList.getCount();
    int middleRowIndex = (int)count/2 ;
    TextView midRow = myList.getAdapter().getView(middleRowIndex, null, null).findViewById(R.id.textView);
    midRow.setTextSize(TypedValue.COMPLEX_UNIT_SP,(int)(count * middleRowIndex));
    int prevIndex = middleRowIndex - 1;
    int nextIndex = middleRowIndex + 1;
    while(prevIndex >=0 && nextIndex < count){
        v = myList.getAdapter().getView(prevIndex, null, null);
        tv = (TextView) v.findViewById(R.id.textview);
        tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,(int)(count * prevIndex));
        v1 = myList.getAdapter().getView(nextIndex, null, null);
        tv1 = (TextView) v.findViewById(R.id.textview);
        tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP,(int)(count * prevIndex));
        prevIndex--;
        nextIndex++;
    }
}

v,v1,tv 和 tv1 是自定义列表视图中的视图,因此您可能需要更改它们,以及计算字体大小和设置它的方式,您可能想要更改它。

P.S 我没有在应用程序上尝试此代码,但如果您遇到错误,它应该可以工作,让我知道。

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 2022-11-02
    • 2012-06-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多