我有一个RecyclerView内部AppCompatActivity.旋转设备后,会显示项目插入和更改并正确设置动画.
当你:
RecyclerView.DialogFragment,如果你想在删除的项目打开,提示.RecyclerView仍显示该项目.尝试使用notifyDataSetChanged而notifyItemRemoved不是工作,因为该项目仍在显示RecyclerView.
任何版本的Android都会发生这种情况.
有关如何处理流程的简化代码:
public class MyAppCompatActivity extends AppCompatActivity {
int positionOfDeletedItem;
MyObjectRecyclerViewAdapter adapter;
ArrayList<MyObject> someTestData;
MyItemDeletionHandler deletionHandlerRemover;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity_layout);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
positionOfDeletedItem = 1;
deletionHandlerRemover = new MyItemDeletionHandler(this);
someTestData = new ArrayList<MyObject>(3);
someTestData.add(new MyObject("A"));
someTestData.add(new MyObject("B"));
someTestData.add(new MyObject("C"));
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new MyObjectRecyclerViewAdapter(new MyAdapterOnClickEvent.OnItemClick() {
@Override …Run Code Online (Sandbox Code Playgroud) android orientation-changes notifydatasetchanged android-recyclerview
我有一段代码如下:
fn stream_it(&self) -> Box<dyn Stream<Item=()>> {
Box::new(self.some_field)
}
fn consume_it(&self) {
let a = self.stream_it().map(|i| i);
}
Run Code Online (Sandbox Code Playgroud)
我收到编译错误:
fn stream_it(&self) -> Box<dyn Stream<Item=()>> {
Box::new(self.some_field)
}
fn consume_it(&self) {
let a = self.stream_it().map(|i| i);
}
Run Code Online (Sandbox Code Playgroud)
我知道这个Sized要求是必要的,但我不知道如何满足它。甚至可以映射单元流吗?
我想使用randomR在一个范围之间生成N个随机数.
我知道有其他方法可以实现这一点,例如randomRs在此代码中使用和获取N,可在此处找到:
diff_select :: Int -> Int -> StdGen -> [Int]
diff_select n m = take n . nub . randomRs (1, m)
Run Code Online (Sandbox Code Playgroud)
但我想使用randomR和使用Statemonad.我不确定我在这个代码中犯了什么错误:
let fs = \s -> (randomR (0, 5) s, s)
let theState s = state (fs s)
let rep n ma = replicateM n (theState ma)
let res = runState (rep 3) (mkStdGen 4) -- Would like to use `get`
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?