Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义Listview/Recyclerview_Android_Android Layout_Android Recyclerview_Android Adapter - Fatal编程技术网

Android 自定义Listview/Recyclerview

Android 自定义Listview/Recyclerview,android,android-layout,android-recyclerview,android-adapter,Android,Android Layout,Android Recyclerview,Android Adapter,我想在android中实现自定义listview,它的行由小变大,如下所示 如果不是listview/recyclerview,那么我可以使用android的其他组件吗 任何帮助都将不胜感激 对于listview,在填充列表后,您将需要以下内容: private void changeSizes() { View v; View v1; TextView tv; // this one depends on your layout TextView tv1;

我想在android中实现自定义listview,它的行由小变大,如下所示

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


任何帮助都将不胜感激

对于listview,在填充列表后,您将需要以下内容:

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++;
    }
}
private void changeSizes(){
观点五;
视图v1;
TextView tv;//这取决于您的布局
文本视图tv1;
int count=myList.getCount();
int middleRowIndex=(int)计数/2;
TextView midRow=myList.getAdapter().getView(middleRowIndex,null,null).findViewById(R.id.TextView);
中行.setTextSize(TypedValue.COMPLEX_UNIT_SP,(int)(计数*中行索引));
int-prevIndex=middleRowIndex-1;
int-nextIndex=middleRowIndex+1;
而(prevIndex>=0&&nextIndex
v、 v1、tv和tv1是自定义listview中的视图,因此您可能需要更改它们,以及计算字体大小和设置字体大小的方法,您可能需要更改它们


另外,我没有在应用程序上尝试此代码,但它应该可以工作。如果遇到错误,请告诉我。

您是说所选字体是最大的字体吗?或者它总是从小到大再到小?我想他真正想要的是有一个项目列表,当你刷的时候,中间的一个被选中了。。。类似于圆形的
ListView
只需使用位置作为乘数并设置文本大小。或者您可以使用文本大小的整数数组。@YamenNassif yes它将始终从小到大到小smaller@Mehdi看看我贴的链接