小编ham*_*314的帖子

如何在ConstraintLayout中创建可访问的焦点组?

想象一下,你有一个LinearLayout里面RelativeLayout包含3个TextViews具有artist, song and album:

<RelativeLayout
    ...
    <LinearLayout
        android:id="@id/text_view_container"
        android:layout_width="warp_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@id/artist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Artist"/>

        <TextView
            android:id="@id/song"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Song"/>

        <TextView
            android:id="@id/album"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="album"/>
    </LinearLayout>

    <TextView
        android:id="@id/unrelated_textview1/>
    <TextView
        android:id="@id/unrelated_textview2/>
    ...
</RelativeLayout>        
Run Code Online (Sandbox Code Playgroud)

当您激活TalkbackReader并单击其中的a TextViewLinearLayout,TalkbackReader将显示"艺术家","歌曲"或"专辑".

但是您可以TextViews通过使用以下方法将前3个放入焦点组:

<LinearLayout
    android:focusable="true
    ...
Run Code Online (Sandbox Code Playgroud)

现在,TalkbackReader将阅读"艺术家歌曲专辑".

2 unrelated TextViews仍然是他们自己而不是阅读,这是我想要实现的行为.

(请参阅Google codelabs示例以供参考)

我现在正试图重新创建这种行为,ConstrainLayout但没有看到如何.

<ConstraintLayout>
    <TextView artist/>
    <TextView song/>
    <TextView album/>
    <TextView unrelated_textview1/>
    <TextView unrelated_textview2/>
</ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

将小部件放入"组"似乎不起作用:

<android.support.constraint.Group
    android:id="@+id/group"
    android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android accessibility talkback android-constraintlayout

20
推荐指数
2
解决办法
1965
查看次数

用户登录的UML类图

下图是我第一次尝试创建描述用户登录网站的UML类图.

rubbishlogindesign

我确信它的设计很差,并且有很多缺陷,但我希望向你们学习如何设计一个像这样的简单登录.我对您使用设计模式以及您将使用哪些模式,如何在设计中实现它以及原因感兴趣.

任何建议,批评,意见和建议将非常感激.提前致谢.

oop uml design-patterns class-design

18
推荐指数
2
解决办法
7万
查看次数

如何在JScrollPane上增加慢滚动速度?

我在我的项目中添加了JPanel一个JScrollPane.

所有工作正常,但有关于使用鼠标滚轮一个问题鼠标滚轮在JPanel的.滚动速度非常慢.如何让它更快?

我的代码是:

JPanel panel = new JPanel();

panel.setLayout(new BorderLayout());
objCheckBoxList = new CheckBoxList();
BaseTreeExplorer node = (BaseTreeExplorer)projectMain.objCommon.tree.getLastSelectedPathComponent();
if (node.getObject() != null) {
    cmbList.setSelectedItem(node.getParent().toString());
} else {
    if (node.toString().equalsIgnoreCase("List of attributes")) {
        cmbList.setSelectedIndex(0);
    } else {
        cmbList.setSelectedItem(node.toString());
    }
}

panel.add(objCheckBoxList);

JScrollPane myScrollPanel = new JScrollPane(panel);

myScrollPanel.setPreferredSize(new Dimension(200, 200));
myScrollPanel.setBorder(BorderFactory.createTitledBorder("Attribute List"));
Run Code Online (Sandbox Code Playgroud)

java swing jpanel mousewheel jscrollpane

13
推荐指数
1
解决办法
8195
查看次数

您可以缩放窗口构建器以查看更多设计吗?

我在eclipse的windowbuilder上工作.我的框架是全屏的,因此它不适合WB的设计页面.

JScrollPanes也会出现同样的问题,在Windowbuilder的设计视图中你可以看到滚动条,但是你无法使用它们.

无论如何要缩小WB以便我可以全面查看我的窗口吗?

eclipse resize zoom fullscreen windowbuilder

13
推荐指数
1
解决办法
1378
查看次数

Android P(API 28)-StrictMode策略违规“ SmartSelectionEventTracker $ SelectionEvent;-&gt; selectionAction”是什么意思?

我使用StrictMode来查找非SDK用法:

if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectNonSdkApiUsage()
            .penaltyLog()
            .build());
}
Run Code Online (Sandbox Code Playgroud)

现在,我违反了政策:

D/StrictMode: StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/textclassifier/logging/    SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/    SmartSelectionEventTracker$SelectionEvent;
        at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
        at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
        at java.lang.Class.getDeclaredMethodInternal(Native Method)
        at java.lang.Class.getPublicMethodRecursive(Class.java:2075)
        at java.lang.Class.getMethod(Class.java:2063)
        at java.lang.Class.getMethod(Class.java:1690)
        at bzi.a(SourceFile:11)
        at bzq.a(SourceFile:12)
        at org.chromium.content.browser.selection.SmartSelectionClient.<init>(SourceFile:5)
        at bzZ.a(Unknown Source:7)
        at org.chromium.android_webview.AwContents.e(SourceFile:193)
        at org.chromium.android_webview.AwContents.d(SourceFile:153)
        at org.chromium.android_webview.AwContents.<init>(SourceFile:81)
        at uY.run(SourceFile:15)
        at ahv.a(SourceFile:13)
        at ahw.run(SourceFile:2)
        at org.chromium.base.ThreadUtils.b(SourceFile:31)
        at ahv.a(SourceFile:7)
        at com.android.webview.chromium.WebViewChromiumFactoryProvider.b(SourceFile:6)
        at com.android.webview.chromium.WebViewChromium.init(SourceFile:111)
        at android.webkit.WebView.<init>(WebView.java:678)
        at android.webkit.WebView.<init>(WebView.java:604)
        at android.webkit.WebView.<init>(WebView.java:587)
        at android.webkit.WebView.<init>(WebView.java:574)
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at …
Run Code Online (Sandbox Code Playgroud)

reflection android android-strictmode

13
推荐指数
1
解决办法
7435
查看次数

在Java中直接使用JAXP而不是DOM/SAX有什么好处?

作为XML解析的新手,我正在尝试理解不同的技术.针对不同需求存在大量不同的技术:

  • W3C-DOM
  • XOM
  • JDOM
  • JAXP
  • JAXB
  • DOM
  • SAX
  • StAX的
  • TrAX的
  • Woodstox
  • DOM4J
  • 赤红
  • VTD-XML
  • 的Xerces-J
  • 蓖麻
  • XStream的
  • ...

仅举几个.

DOM和SAX似乎是解析和处理XML的低级方式,所以我决定专注于那些在不同来源中被提及最多并且是低级的:

DOM,SAX,JAXP.

我读过有关,一般在这里解析器上计算器,JAXP教程从Oracle,XML的解析一般,等等.

我也尝试了一些类似德语和其他的教程.

我现在正在抓一点DOM和SAX,但是使用JAXP的原因仍然超出我的意思.它似乎更像是一个在内部使用DOM,SAX,...的接口,但为什么不直接使用DOM或SAX呢?

在外行术语中使用JAXP有什么好处?

java xml dom sax jaxp

10
推荐指数
1
解决办法
2814
查看次数

在主屏幕应用中禁用主页按钮?

我正在为我的大学研究项目.该应用程序永远不会投放市场,仅用于研究.

我使用Google Homescreen示例代码制作了一个主屏幕应用.在那里,我做了一个锁屏活动.在那里,用户不应该通过按Home,Back等来退出锁定.后退按钮似乎被禁用,但主页按钮不是.我尝试过几种来自互联网和stackoverflow的解决方案,这些解决方案都无法正常工作.

这是重要的代码:

(注意:Logcat显示"按下按钮:4"用于后退按钮,但没有用于主页按钮!)

在我的锁屏活动中:

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.v(TAG, "BUTTON PRESSED: " + new Integer(keyCode).toString());

        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            return true;
        } else if ((keyCode == KeyEvent.KEYCODE_CALL)) {
            return true;
        }
        else if ((keyCode == KeyEvent.KEYCODE_HOME)){
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public void onAttachedToWindow() {
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }
Run Code Online (Sandbox Code Playgroud)

从Android版本4开始,onAttachedToWindow()方法似乎无效.如何禁用homebutton?

编辑:清单文件:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.home" >

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" …
Run Code Online (Sandbox Code Playgroud)

java android homescreen lockscreen

9
推荐指数
1
解决办法
3876
查看次数

Android Studio 2.2.3:收藏夹,书签和打开的文件夹不断消失,项目和.idea-folder总是被重建

我试图在Windows 7上使用Android Studio 2.2.3的收藏夹和书签来浏览我们的代码库.

我打开了一个项目,保存收藏夹和书签工作正常.但是当我打开另一个项目时,当我的第一个项目也打开然后关闭其中一个项目时,关闭的项目会丢失所有收藏夹,书签以及我打开的文件夹和标签.

AS每次启动时都会一直要求我添加VCS root.

虽然我搜索过,但找不到任何描述我问题的来源.

我已经将我的所有项目复制到一个新文件夹中并给了我自己对该文件夹的所有权限,但这并没有解决我的问题,所以我认为权限不是问题所在.

我的假设是,如果您使用多个实例,Android Studio可能会遇到问题.

所以我去尝试将其设置为仅使用一个窗口:

ProjectOpen

但是这个设置不断被忽略,AS为每个项目打开了一个新窗口.

我通过删除文件夹重置Android Studio的所有设置 C:\<username>\.AndroidStudio2.2.

然后我重新启动Android Studio并没有导入任何新设置.

使用此配置,我的问题仍然存在.

为了重现'bug',请执行以下操作:

  • 打开一个项目File -> Open(不File -> Open recent!)
  • 添加书签
  • 打开另一个项目(第一个项目仍然打开!) File -> Open
  • 在那里添加书签
  • 关闭项目1并重新打开项目1 File -> Open

此时所有标签/书签/收藏夹都应该消失.

Vadim Kotov已经证实他的Android Studio也出现了这个问题,所以我怀疑AS中存在一个错误.

如何修复消失的收藏夹,书签,打开的文件夹和标签?

android-studio

9
推荐指数
1
解决办法
622
查看次数

为什么 TextView 的对讲文本会读取两次,即使 TextView 已填充,提示也会读取?

我正在做一个大项目,我们使用TextViews 来显示文本和提示。

使用对讲(可访问性)时,我注意到 a 上的提示TextView被读取了两次。

此外,即使 中有文本TextView,提示仍将被读取。

当我使用 an 时EditText,只有第二个问题仍然存在(输入的文本,提示仍被读取)。这似乎是正常的(但令人困惑的)Android 行为,因为像 PlayStore 这样的 Google 应用程序也会这样做。

但是为什么TextView阅读提示两次,而EditText不是?


PS:我知道从 切换TextView到的可能性EditText,但由于我们也在使用自定义视图,这在很大程度上取决于TextView,因此这不是一个可行的选择。

我也知道使用label for,但我对技术背景更感兴趣,为什么TextView阅读提示两次。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="test"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>
Run Code Online (Sandbox Code Playgroud)

无障碍阅读两次

android accessibility talkback

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

为什么静态方法在接口中被视为“实用方法”?

我正在阅读有关接口的 Java 文档,并阅读了有关默认方法的章节。据我了解,当您定义一个接口并随后向其添加方法时,所有实现该接口的类都会中断,并且需要实现新方法。

因此,文档简要提到静态方法作为缓解此问题的选项,但也指出,它们将被视为“实用方法”而不是必需的:

如果将它们添加为静态方法,那么程序员会将它们视为实用方法,而不是必要的核心方法

为什么会出现这种情况/为什么它们会被视为“不重要”?

java static

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