标签: ui-patterns

模型视图演示者 - 相同的视图,不同的演示者

我正在使用MVP构建一个Android应用程序,我对此模式有一个疑问.

假设我有一个用于创建新人的屏幕.此屏幕将显示一个EditText用于插入名称,另一个用于ImageView显示所选照片图片等.这将导致一个View界面,由Fragment.它将与一个Presenter接口合作,由另一个类实现.

精细.

现在我有另一个功能:用于编辑现有人的屏幕.碰巧,View此功能与创建新人的功能相同.但是,Presenter情况有所不同.它将从db中加载现有人员以使用当前数据预先填充视图开始,单击"save"时对数据库的操作将是更新而不是插入.

因此,我认为这是MVP的一个示例,其中一个View与演示者的不同实现一起工作以实现不同的用例.

  1. 你认为这是一个正确的假设,或者你觉得不同的特点应该有不同的ViewPresenter接口?

  2. 另外,如果你有一个共同的View和不同的Presenters,将View是共同的实现,还是会导致两个类实现相同的接口?在实践中,我看到两个选项.

    • 只有一个Fragment实施View.根据用户是要创建新人还是更新现有人,Fragment应该接收并使用不同的Presenter.

    • 有两个Fragment.每个人都会实例化一个不同的Presenter.使用组合或继承来避免在两个片段之间复制代码.

在这些情况下,您认为更好的做法是什么?

谢谢.

mvp android design-patterns presenter ui-patterns

8
推荐指数
1
解决办法
1252
查看次数

Microsoft UI Automation:调用模式异常

我试图使用调用模式单击一个按钮.

InvokePattern ipAddMPButton = (InvokePattern)aeAddMPButton.GetCurrentPattern(InvokePattern.Pattern);
        try
        {
            ipAddMPButton .Invoke();
        }
        catch (System.Runtime.InteropServices.COMException e)
        {
            // TODO
        }
Run Code Online (Sandbox Code Playgroud)

它抛出COMException,我无法弄清楚为什么?

当我运行此代码时,按钮实际上被按下,功能正常.但随后它会停止一段时间,并抛出此异常.

ui-automation ui-patterns microsoft-ui-automation

5
推荐指数
1
解决办法
1243
查看次数

导航抽屉多个容器和最佳实践

我在Android UI开发方面相对较新.所以我需要更有经验的开发人员的帮助.
我正在创建我的应用程序Navigation Drawer,我遇到了很多问题.
首先,这是导航抽屉的示例代码.

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

这是官方网站的简单示例.

主内容视图(上面的FrameLayout)必须是DrawerLayout中的第一个子节点,因为XML顺序意味着z-ordering,抽屉必须位于内容之上.

在此示例中,有两个嵌套视图:FrameLayout如前所述,用于存储主内容和ListView表示NavigationDrawer菜单.

所以这是我的问题.

  1. 真正的应用程序在整个Activity上没有一个视图.主要是Activity有很多不同的视图,并且有几个片段可以使UI更具响应性并为用户提供更好的用户体验.我的活动当然是不同的观点和片段(相同活动的目的是什么?:)).One Activity只有一个片段,另一个片段有几个片段,所以它们都是不同的...在前面的代码示例中,只有一个FrameLayout容器可以容纳Fragment ONLY ONE片段,如果我的Activity有两个,三个或更多,我必须做什么片段?在这种情况下,最佳解决方案是什么.
  2. 正如我所描述的,我的应用程序有多个活动,因此我的导航抽屉必须(根据Android UI实践)在每个活动上让用户导航到应用程序的顶级元素.在这种情况下,最好有一个BaseActivity(我已经在stackoverflow上阅读了答案),它将保存所有配置的东西NavigationDrawer.但就导航抽屉需要DrawerLayout在XML布局中的活动而言,BaseActivity应该调用setContentView方法.并且从BaseActivity活动继承的所有内容都应该做一些设置自己布局的技巧,否则覆盖这个方法没有意义,因为它会打破所有逻辑.在这种情况下该怎么办?
  3. 什么是创建自定义导航抽屉列表的最有效方法,如在谷歌+或YouTube中,而不使用复杂的视图层次结构,这使GPU工作努力,并可能带来用户不良的体验

对于第二个问题,我有一些想法如何解决这个问题,但不知道它是正确的方法,哪种方法更好.
第一个想法是实现TemplateMethod模式.在BaseActivity类似的东西中创建方法setupCustomViewGroup()并在所有活动中覆盖它从xml中膨胀所需的视图组并从此方法返回它,而不是在膨胀整个视图中使用它.

或者明确地向Activity添加视图,使用merge和include标记.

但同样,这只对整个活动或一个片段有用,如果我们有更多片段,使用嵌套片段怎么办,我认为这是个坏主意.

此外,我的目标是优化视图层次结构,使其快速高效,以便在旧设备上实现平滑.

对于能够描述或建议在这种情况下遵循最有效和正确的方法来使UI响应和代码可读的人,我将非常感激.

谢谢.

android ui-patterns android-layout android-fragments navigation-drawer

5
推荐指数
0
解决办法
950
查看次数

Flexbox 布局模式:5 个正方形(1 个大,4 个小)

我正在尝试组合一个弹性盒布局 - 出于这个问题的目的,我将其称为“方形五块”布局(见图) - 但我遇到了麻烦,正如我尝试过的所有实验一样包裹不正确。

我见过使用浮动完成的相同布局,但我希望能够稍微适应未来并使用更新的方法 - 因此是 Flexbox。我尝试过搜索这种模式,但似乎没有一致的名称,因此找到类似的示例很困难。

我也使用视口单位来确保块保持完美的正方形,所有这些都基于视口宽度(vw)单位。

div { width: 25vw; height: 25vw; }
div:first-of-type { width: 50vw; height: 50vw; }
Run Code Online (Sandbox Code Playgroud)

主要特征是所有块都应该是正方形,但是第一个块的大小应该是其余四个块总和的大小。以前有人见过或做过这样的布局吗?

使用 Flexbox 的 5 块完美正方形网格; 第一个块的大小应与其余四个块的大小完全相同

谢谢!!

html css layout ui-patterns flexbox

5
推荐指数
1
解决办法
6372
查看次数

多级网格的UI设计模式

目前我要求在多级网格中显示相关项目.这是伟大的祖父母 - >祖父母 - >父母 - >孩子

例如:Country-> state-> City-> Street是显示顺序.

建议的解决方案是在多级网格中显示所有这些(最多4个级别).

国家 - >州 - >城市 - >街

由于我对可用性方面的解决方案不满意,我正在寻找一种将显示分解为逻辑单元的UI设计模式.

谢谢

usability interaction-design ui-patterns

4
推荐指数
1
解决办法
4394
查看次数

MVC:用户消息堆栈实现

您将如何在ASP.Net MVC中实现用户消息堆栈?(您在应用程序内的任何位置为用户设置消息.它们在应用程序内的任何位置显示为应用程序的提示)

我想听听你的想法和想法.你会怎么做?

例如:

用户堆栈消息示例

asp.net asp.net-mvc user-interface messagebox ui-patterns

3
推荐指数
1
解决办法
249
查看次数