VC++ textlist的滚动条自动滚到底端

  int   iMinPos   =   0;  
  int   iMaxPos   =   0;  
  m_edit.GetScrollRange(SB_VERT,   &iMinPos,   &iMaxPos);  
  //m_edit.SetScrollPos(SB_VERT,   iMaxPos,   TRUE);  //不好,导致添加位置不对
   m_edit.LineScroll(iMaxPos);  // Select LAST LINE

在 Android 的 Fragment 中让 TextList 滚动起来,可借助 `ListView` 或者 `RecyclerView` 来实现。以下是使用 `ListView` 和 `RecyclerView` 的示例代码。 ### 使用 `ListView` 1. **在布局文件里添加 `ListView`** ```xml <!-- my_fragment.xml --> <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout> ``` 2. **在 Fragment 中设置 `ListView` 及其适配器** ```java import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import java.util.ArrayList; import java.util.List; public class MyFragment extends Fragment { private List<String> textList = new ArrayList<>(); @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); // 初始化数据 for (int i = 0; i < 20; i++) { textList.add("Item " + i); } // 获取 ListView ListView listView = view.findViewById(R.id.listView); // 创建适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, textList); // 设置适配器 listView.setAdapter(adapter); return view; } } ``` ### 使用 `RecyclerView` 1. **在布局文件中添加 `RecyclerView`** ```xml <!-- my_fragment.xml --> <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout> ``` 2. **创建 `RecyclerView` 的适配器** ```java import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private List<String> textList; public MyAdapter(List<String> textList) { this.textList = textList; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { holder.textView.setText(textList.get(position)); } @Override public int getItemCount() { return textList.size(); } public static class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; public MyViewHolder(@NonNull View itemView) { super(itemView); textView = itemView.findViewById(android.R.id.text1); } } } ``` 3. **在 Fragment 中设置 `RecyclerView` 及其适配器** ```java import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class MyFragment extends Fragment { private List<String> textList = new ArrayList<>(); @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); // 初始化数据 for (int i = 0; i < 20; i++) { textList.add("Item " + i); } // 获取 RecyclerView RecyclerView recyclerView = view.findViewById(R.id.recyclerView); // 设置布局管理器 recyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); // 创建适配器 MyAdapter adapter = new MyAdapter(textList); // 设置适配器 recyclerView.setAdapter(adapter); return view; } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值