Articles of mvvm

在’/activity_login.xml’DataBinding文件中find重复的类,未生成BR

我大多陷入了android数据绑定BR问题。 始终存在单个activity.xml,但生成的绑定类显示错误。 请让我知道如何解决此问题。

在MVVM体系结构中使用Tab布局和数据绑定库

我正在开发一个具有标签布局作为图像的应用程序。 我想将MVVM架构与数据绑定库一起使用,但我是这个框架的新手。 我可以通过使用ViewPager作为此示例的常规设置选项卡布局而不使用MVVM来执行此操作。 没有MVVM和数据绑定的常规选项卡布局: activity_main.xml中: MainActivity.java: public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new […]

Android数据绑定和animation

有人能指出我在使用数据绑定时如何触发animation的方向吗? 我有一个图标,根据我的viewmodel中的数据更改。 当视图模型更改时(即,视图模型中的属性发生更改时),如何为图标更改设置animation?

Xamarin表单MasterDetail页面导航导致android崩溃,适用于iOS和UWP

我有一个如下的大师细节 public partial class LeaguesMDPage : MasterDetailPage { public LeaguesMDPage() { InitializeComponent(); Master = new LeaguesPage(); Detail = new NavigationPage(new DivisionsPage(new League())); } } League Page(Master)设计有一个如下所示的列表视图 而背后的代码是 public partial class LeaguesPage : ContentPage { LeaguesViewModel vm; public LeaguesPage() { InitializeComponent(); BindingContext = vm = new LeaguesViewModel(this); } protected override void OnAppearing() { base.OnAppearing(); vm.UpdateLeagues.Execute(false); } […]

Android包含数据绑定库动态布局

我正在使用带有数据绑定库的Android应用程序的MVVM框架。 我有一些可重复使用的组件,应该包含所有活动。 fe工具栏,菜单,浮动动作按钮。 我想创建一个通用活动,它将实现所有这些可重用的function,然后每个活动类都将从此通用活动inheritance。 我还有GenericViewModel类,每个其他ViewModel都inheritance自这个generics类。 但我的布局有问题。 我想创建通用布局文件,并在那里包含sublayout dinamically。 FE 我不想为每个活动复制/粘贴此代码,但数据绑定库不允许动态包含布局。 这种情况有什么解决方案吗?

应该在MVVM中的Activity / Fragment和ViewModel中做什么

我们公司一直在使用MVP模式开发Android应用程序。 使用MVP,我们将所有业务逻辑放在演示者中,然后Activity / Fragment负责在从演示者接收事件回调时查看更新。 现在,我们决定使用Android Databinding尝试MVVM。 看来,使用MVVM,我们可以将所有业务逻辑放在ViewModel中(就像MVP中的Presenter一样),并且还可以在一个对象中通知数据模型的任何更改视图。 但是,在我们的脑海中,这提出了一个问题,我们应该由Activity / Fragment处理什么呢? 因为我们采用MVP模式来避免脂肪活动/碎片 。 我们不希望有苗条活动/片段然后胖视图模型 。 到目前为止,我们认为我们可以通过Activity / Fragment来处理 请求/检查权限 访问上下文 访问资源 每个更正,评论或建议都是受欢迎的,因为我对MVVM很新,即使它似乎与MVP类似。 谢谢。 还有一点问题 将MVVM与监听器(如MVP)结合起来是否可行且做法良好? 例如 public class MainActivityViewModel extends BaseObservable { MainActivityViewModelListener listener; User user; public void setMainActivityViewModelListener(MainActivityViewModelListener listener) { this.listener = listener; } public void refreshUser(View v) { // some user update via Internet […]

Android架构组件:使用ViewModel for RecyclerView项目

我正在尝试使用Architecture Components,我想为RecyclerView的每个项目构建一个ViewModel。 我不确定这是否正式正确或我应该坚持“旧方式”。 我有这个适配器: public class PostAdapter extends RecyclerView.Adapter { private List list; public static class PostViewHolder extends RecyclerView.ViewHolder{ final ItemPostBinding binding; public PostViewHolder(ItemPostBinding binding){ super(binding.getRoot()); this.binding = binding; } } @Override public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { ItemPostBinding binding = DataBindingUtil .inflate(LayoutInflater.from(parent.getContext()), R.layout.item_post, parent, false); return new PostViewHolder(binding, parent.getContext()); } @Override public void […]

Android刷新适配器工作后再次旋转设备

当我将一些数据添加到“列表模型”并在旋转设备上恢复保存的数据时,此代码工作正常,遗憾的是在恢复数据并将其设置为onRestoreInstanceState方法中的model后,在添加其他数据后, 适配器无法使用新添加的数据刷新,适配器后的数据源可以更新,但适配器可以; t知道它们,我正在使用MVVM数据模型绑定并搜索更多时间关于这个问题我无法解决这个问题。 Rhat有一个简单的提示,在再次旋转设备之后,我的适配器可以刷新所有添加的数据,适配器不用它们刷新。 public class ActivityRegister extends BaseActivities{ private List model = new ArrayList(); … @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); … } @Override protected void onSaveInstanceState(Bundle outState) { outState.putParcelable(“model”, Parcels.wrap(model)); super.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle outState) { model = Parcels.unwrap(outState.getParcelable(“model”)); adapter.setData(model); adapter.notifyItemInserted(model.size() – 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() – 1); } 添加到model方法: @Override […]

在Android MVVM架构中显示来自ViewModel的Dialog

关于使用新架构组件的MVVM,我有一个问题,如果我的应用程序需要显示例如一个Dialog,其中包含来自VM中发生的某些操作的3个选项,我应该如何实现? 谁负责向Activity / Fragment发送显示对话框的命令?

Android数据绑定layout_width和layout_height

我需要能够动态设置EditText的height属性。 我在我的应用程序中使用数据绑定其他属性,所以我希望能够使用数据绑定来控制我的元素的高度。 这是我的xml的精简版: 这是我的View模型的精简版: public class LoginViewModel extends BaseObservable { public final ObservableField verificationCode; public final ObservableField compact; @Bindable public String getVerificationCode() { if (this.verificationCode == null) { return “”; } else { return this.verificationCode.get(); } } public void setVerificationCode(String verificationCode) { this.verificationCode.set(verificationCode); invalidateProperties(); } @Bindable public Boolean getCompact(){return this.compact.get();} public void setCompact(Boolean value) { […]