Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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中没有对话框的Progressbar_Android_Progress Bar_Android Recyclerview - Fatal编程技术网

android中没有对话框的Progressbar

android中没有对话框的Progressbar,android,progress-bar,android-recyclerview,Android,Progress Bar,Android Recyclerview,我想在我的android项目中使用progressbar,用户可以选择多个文件上传到服务器 我想为每个文件上载进度显示progressbar。我不想使用ProgressDialog来完成此任务。我计划在recyclerview(一行中的每个进度条)中显示所有选定文件的上载进度,以便用户滚动所有进度条。 我没有找到任何好的教程。我曾在recyclerview上工作过,但整齐地放置进度条在这里很重要。有什么建议吗?您可以在recycler\u item.xml上设置一个ProgressBar(用您的

我想在我的android项目中使用progressbar,用户可以选择多个文件上传到服务器

我想为每个文件上载进度显示progressbar。我不想使用ProgressDialog来完成此任务。我计划在recyclerview(一行中的每个进度条)中显示所有选定文件的上载进度,以便用户滚动所有进度条。


我没有找到任何好的教程。我曾在recyclerview上工作过,但整齐地放置进度条在这里很重要。有什么建议吗?

您可以在recycler\u item.xml上设置一个
ProgressBar
(用您的实际项目文件名替换recycler\u item),它将在自定义
适配器上膨胀

然后,每次调用
onBindViewHolder()
时,将
ProgressBar
的可见性设置为
VISIBLE

快速示例:

ProgressBarAdapter.java(真正的魔力在哪里)

class ProgressBarAdapter扩展了RecyclerView.Adapter{
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图文本视图;
公共ProgressBar ProgressBar;
公共视图持有者(视图项视图){
超级(项目视图);
textView=(textView)itemView.findViewById(R.id.text1);
progressBar=(progressBar)itemView.findViewById(R.id.progress1);
}
}
私人名单文件;
私有上下文;
公共ProgressBarAdapter(列表文件){
mFiles=文件;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
mContext=parent.getContext();
LayoutFlater充气机=LayoutFlater.from(mContext);
视图充气=充气机充气(R.layout.recycler\u项目,父项,false);
返回新的ViewHolder(ViewHolder);
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置){
字符串文件=mFiles.get(位置);
TextView TextView=holder.TextView;
setText(文件);
holder.progressBar.setVisibility(视图可见);
holder.progressBar.SetUndeterminate(真);
}
@凌驾
public int getItemCount(){
返回mFiles.size();
}
}
MainActivity.java

public class MainActivity extends AppCompatActivity {

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

        ArrayList<String> files = new ArrayList<>();
        files.add("File 1");
        files.add("File 2");
        files.add("File 3");

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler1);
        recyclerView.setAdapter(new ProgressBarAdapter(files));
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
    }
}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList files=新的ArrayList();
文件。添加(“文件1”);
文件。添加(“文件2”);
文件。添加(“文件3”);
RecyclerView RecyclerView=(RecyclerView)findViewById(R.id.recycler1);
setAdapter(新的ProgressBarAdapter(文件));
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
}
}
活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v7.widget.RecyclerView>

</LinearLayout>
<?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="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <!-- This ProgressBar will get inflated for each ReyclerView item -->
    <ProgressBar 
        android:id="@+id/progress1"
        android:visibility="gone"
        style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

<?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="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <!-- This ProgressBar will get inflated for each ReyclerView item -->
    <ProgressBar 
        android:id="@+id/progress1"
        android:visibility="gone"
        style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>