Android 仿抖音的评论列表的UI和效果的实现代码

抖音是一款音乐创意短视频社交软件,是一个专注年轻人的15秒音乐短视频社区。用户可以通过这款软件选择歌曲,拍摄15秒的音乐短视频,形成自己的作品。此App已在Android各大应用商店和APP Store均有上线。

在design包里面 有一个 BottomSheetDialogFragment 这个Fragment,他已经帮我们处理好了手势,所以实现起来很简单。下面是代码:

public class ItemListDialogFragment extends BottomSheetDialogFragment {

// TODO: Customize parameter argument names

private static final String ARG_ITEM_COUNT = "item_count";

private Listener mListener;

// TODO: Customize parameters

public static ItemListDialogFragment newInstance(int itemCount) {

final ItemListDialogFragment fragment = new ItemListDialogFragment();

final Bundle args = new Bundle();

args.putInt(ARG_ITEM_COUNT, itemCount);

fragment.setArguments(args);

return fragment;

}

@Nullable

@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

// 在这里将view的高度设置为精确高度,即可屏蔽向上滑动不占全屏的手势。

View view = inflater.inflate(R.layout.fragment_item_list_dialog, container, false);

view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,

ScreenUtils.getScreenHeight(getActivity()) / 3 * 2));

return view;

}

@Override

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

final RecyclerView recyclerView = (RecyclerView) view;

recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

recyclerView.setAdapter(new ItemAdapter(getArguments().getInt(ARG_ITEM_COUNT)));

}

@Override

public void onAttach(Context context) {

super.onAttach(context);

final Fragment parent = getParentFragment();

if (parent != null) {

mListener = (Listener) parent;

} else {

mListener = (Listener) context;

}

}

@Override

public void onDetach() {

mListener = null;

super.onDetach();

}

public interface Listener {

void onItemClicked(int position);

}

private class ViewHolder extends RecyclerView.ViewHolder {

final TextView text;

ViewHolder(LayoutInflater inflater, ViewGroup parent) {

// TODO: Customize the item layout

super(inflater.inflate(R.layout.fragment_item_list_dialog_item, parent, false));

text = (TextView) itemView.findViewById(R.id.text);

text.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (mListener != null) {

mListener.onItemClicked(getAdapterPosition());

dismiss();

}

}

});

}

}

private class ItemAdapter extends RecyclerView.Adapter<ViewHolder> {

private final int mItemCount;

ItemAdapter(int itemCount) {

mItemCount = itemCount;

}

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

return new ViewHolder(LayoutInflater.from(parent.getContext()), parent);

}

@Override

public void onBindViewHolder(ViewHolder holder, int position) {

holder.text.setText(String.valueOf(position));

}

@Override

public int getItemCount() {

return mItemCount;

}

}

}

补充:

Android SwipeRefreshLayout仿抖音app静态刷新

SwipeRefreshLayout的功能就是可以让我们的界面在不动的情况下,下拉直接刷新

效果图:

activity_listview布局文件

<android.support.v4.widget.SwipeRefreshLayout

android:id="@+id/sr1"

android:layout_width="match_parent"

android:layout_height="match_parent">

<ListView

android:id="@+id/lv"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</android.support.v4.widget.SwipeRefreshLayout>

Activity代码(ListViewActivity)

public class ListViewActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {

private SwipeRefreshLayout swipeRefreshLayout;

private ListView listView;

private List<String> list;

private ArrayAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_list_view);

swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.sr1);

swipeRefreshLayout.setOnRefreshListener(this);

list = new ArrayList<>();

list.add("ssss");

listView = (ListView) findViewById(R.id.lv);

adapter = new ArrayAdapter(this

, android.R.layout.simple_list_item_1

, android.R.id.text1

, list);

listView.setAdapter(adapter);

}

@Override

public void onRefresh() {

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

swipeRefreshLayout.setRefreshing(false);

adapter.clear();

list.add("1111");

adapter.notifyDataSetChanged();

}

}, 1000);

}

}

总结

以上所述是小编给大家介绍的Android 仿抖音的评论列表的UI和效果的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 Android 仿抖音的评论列表的UI和效果的实现代码 的全部内容, 来源链接: utcz.com/z/324402.html

回到顶部