小编Boj*_*goj的帖子

Angular 材质 - 桌子骨架占位符

我试图在我的 Angular 6 + Material 项目中随处使用骨架占位符。我被困住了<table>,因为我不知道在数据尚未加载时如何使用占位符(下面的示例图片):

在此输入图像描述

我正在使用什么

<table mat-table [dataSource]="dataSource">
  <ng-container matColumnDef="date">
    <th mat-header-cell *matHeaderCellDef>Date</th>
    <td mat-cell *matCellDef="let v">{{ v.date }}</td>
  </ng-container>

  <ng-container matColumnDef="description">
    <th mat-header-cell *matHeaderCellDef>Description</th>
    <td mat-cell *matCellDef="let v">{{ v.description }}</td>
  </ng-container>

  <ng-container matColumnDef="amount">
    <th mat-header-cell *matHeaderCellDef class="text-right">Amount</th>
    <td mat-cell *matCellDef="let v" class="text-right">{{ v.amount }}</td>
  </ng-container>

  <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
  <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我的骨架占位符可能是

<tr *ngFor="let s of [1, 2, 3]">
  <td><span class="sk skw-2 skh-3"></span></td>
  <td><span class="sk skw-3 skh-3"></span></td>
  <td><span class="sk skw-2 skh-3"></span></td> …
Run Code Online (Sandbox Code Playgroud)

html-table angular-material2 angular

6
推荐指数
1
解决办法
8077
查看次数

如何在流媒体之前知道音频歌曲的持续时间?

我正在制作Stream音频歌曲的应用程序.在自定义媒体播放器中,我必须显示该音频文件的总持续时间.如果音频歌曲是SDCard,我可以知道它的持续时间

MediaPlayer player;

public double duration() {
        return player.getDuration();
    }
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,音频文件在服务器上,所以我必须流式传输它.

什么是最好的方法?

streaming android media-player

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

XML toprettyxml 转义引号

在 Android 字符串文档中,您可以看到这个示例(重点是,如果字符串周围有双引号,则不需要转义单引号)。

<string name="good_example_2">"This'll also work"</string>
Run Code Online (Sandbox Code Playgroud)

如果我想用 python 生成 strings.xml ,它一切正常(预期结果),直到我使用 toprettyxml ,这会将它变成

<string name="good_example_2">&quot;This'll also work&quot;</string>
Run Code Online (Sandbox Code Playgroud)

我正在像这个例子一样使用 prettify 。

from xml.etree import ElementTree
from xml.dom import minidom

def prettify(elem):
    """Return a pretty-printed XML string for the Element.
    """
    rough_string = ElementTree.tostring(elem, 'utf-8')
    reparsed = minidom.parseString(rough_string)
    return reparsed.toprettyxml(indent="  ")
Run Code Online (Sandbox Code Playgroud)

toprettyxml转义引号。有什么办法可以阻止这种情况发生吗?

python xml android escaping

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

Carbon实例失败

在我的应用程序中,我使用类似以下内容的内容

if($val instanceof Carbon)
...
Run Code Online (Sandbox Code Playgroud)

不幸的是,除非我之前在代码中使用Carbon(即使只是Carbon::now();),否则它总是返回 false。为什么?

php instanceof laravel php-carbon

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

线程之间的数据库冲突

我的应用程序解析三种不同的XML并将它们保存到数据库中.只要我使用AsyncTask和进度对话框就可以正常工作,因为所有这些都是一个接一个地执行的.我现在开始在三个不同的线程(+ UI线程)中同时解析该数据.现在这四个线程争夺数据库,有时崩溃,总是在使用UI线程时.我收到以下错误:

 ERROR/AndroidRuntime(651): Caused by: java.lang.IllegalStateException: database /data/data/edu.activity/databases/vreme already closed
Run Code Online (Sandbox Code Playgroud)

然后我又来了

 INFO/System.out(667): XML Pasing5 Excpetion = java.lang.IllegalStateException: database not open
Run Code Online (Sandbox Code Playgroud)

或者这个

01-30 00:56:05.232: ERROR/AndroidRuntime(731): FATAL EXCEPTION: Thread-11
01-30 00:56:05.232: ERROR/AndroidRuntime(731): java.lang.IllegalStateException: database not open
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1493)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at edu.database.DBAdapter.insertSamodejne(DBAdapter.java:229)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at edu.util.ApplicationInt.addDBSamodejne(ApplicationInt.java:49)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at edu.xml.XMLtoDB.insertSamodejne(XMLtoDB.java:58)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at edu.activity.SplashScreen$4.run(SplashScreen.java:97)
01-30 00:56:05.232: ERROR/AndroidRuntime(731):     at java.lang.Thread.run(Thread.java:1096)
Run Code Online (Sandbox Code Playgroud)

我每次插入数据时都会插入大约80个项目,使用此方法和类似方法:

public void addDBSplosna(SplosnaRazred s) {
      db.open();
      db.insertSplosna(s);
      db.close();  
}
Run Code Online (Sandbox Code Playgroud)

将对DBAdapter: …

sqlite multithreading android

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