简单来说:
我们如何定义CardView的cardBackgroundColor属性的颜色状态(在这种情况下,在ListView布局中)?
(我在安装了4.4的手机上使用了Android L开发者预览版的RC1,在build.gradle中使用了"com.android.support:cardview-v7:21.0.0-rc1")
更长:
在CardView布局中,我们通过cardCornerRadius和cardBackgroundColor设置CardView的角半径和背景颜色.
但是,例如,背景颜色不会被视为选择状态,即是否按下了列表项.
但是,如果在CardView的内部视图中设置了背景颜色和相关的状态,则它将显示在您在CardView中定义的角上.
那么,我们如何才能确保CardView的cardBackgroundColor中的状态得到尊重?
这是cardBackgroundColor,colour_with_states.xml使用的颜色:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:color="@android:color/holo_green_dark" />
<item android:state_focused="true" android:state_enabled="false" android:color="@android:color/holo_green_dark" />
<item android:state_focused="true" android:state_pressed="true" android:color="@android:color/holo_green_dark" />
<item android:state_focused="false" android:state_pressed="true" android:color="@android:color/holo_green_dark" />
<item android:state_focused="true" android:color="@android:color/holo_green_dark" />
<!-- Only this below is seen in the cardview dispaly -->
<item android:color="@android:color/holo_blue_bright" />
</selector>
Run Code Online (Sandbox Code Playgroud)
以及使用CardView的布局:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cardview="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
cardview:cardCornerRadius="10dp"
cardview:cardBackgroundColor="@color/colour_with_states"
>
<!-- If we set a background color below, it will overwrite our radius defined above -->
<TextView
xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我在撰写中发现的唯一方法是使用accompanist-insetsand 删除窗口插图。这会导致我的应用程序布局出现其他问题。
Android 方式似乎是这样的,我可以将其传递到我的撰写应用程序中并采取相应的操作。
jetpack compose 还有其他方法吗?
我有这个代码
setContent {
val items = mutableListOf<Int>().apply {
(1..100).forEach { add(it) }
}
LazyColumn {
items(items) { item ->
TextField("$item", {})
}
}
}
Run Code Online (Sandbox Code Playgroud)
与android:windowSoftInputMode="adjustResize"我的AndroidManifest.xml.
如果我单击TextField列表顶部的 a,我可以正常输入文本。
如果我单击TextField屏幕底部附近的 ,键盘会立即出现,然后很快消失,并阻止我输入文本。
TextField当位于屏幕底部时如何输入文字?谢谢!
鉴于模板
{{range $i, $e := .SomeField}}
{{if $i}}, {{end}}
$e.TheString
{{end}}
Run Code Online (Sandbox Code Playgroud)
这可以输出
one, two, three
Run Code Online (Sandbox Code Playgroud)
但是,如果我想输出
one, two, and three
Run Code Online (Sandbox Code Playgroud)
我需要知道哪个是上面范围内的最后一个元素.
我可以设置一个变量来保存数组的长度.SomeField,但是它总是3,而上面的$ i值只会变为2.你不能在我看到的模板中执行算术运算.
是否可以检测模板范围中的最后一个值?干杯.
当你有
android {
defaultConfig {
ndk {
moduleName "yourlib"
stl "stlport_static"
ldLibs "log", "z", "m"
cFlags "-I/some/include/dir/"
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle中,然后Gradle将编译src/main/jni /中的文件,它将在build/ndk/debug/Android.mk中生成一个Android.mk.
但是,就我而言,我正在尝试编译一些针对OpenCV编译的C++文件.
当我手动创建Android.mk文件并运行ndk-build命令时,我有这个工作.但我想通过Gradle/Android Studio自动完成.
手动执行此操作时,我将包含要链接的库.我这样做,在手动创建的Android.mk中,使用以下行:
include /path/to/the/opencv/directory/sdk/native/jni/OpenCV.mk
Run Code Online (Sandbox Code Playgroud)
但是,在Android的Gradle插件中,我不确定如何在生成的Android.mk文件中添加此"include"指令.
任何人都可以指向我正确的Gradle指令方向将此行添加到生成文件中吗?谢谢.
我实现了CollapsingToolbarLayout一个视差视图.
当我在一个连续滚动中向后滚动RecyclerView时,它会展开CollapsingToolbarLayout.
但是当我发出嵌套滚动视图的'fling'时,它会停留在嵌套滚动视图的顶部.你必须再次投掷以解开CollapsingToolbarLayout,
Android Studio 2.0中的ScrollingActivity模板演示了此问题.克里斯贝恩的芝士蛋糕项目在详细视图中也表现出同样的效果.
但是,Google Play和Spotify都不会分别在"查看应用"和"播放列表"视图中显示此问题.在单次投掷中,它们将滚动到嵌套滚动视图的顶部并取消折叠工具栏.
这可能与设计库元素有关吗?
编辑:伊恩已经注意到这个报道的错误.请给它上星并发布你可能有的任何工作.
android android-layout android-design-library android-collapsingtoolbarlayout
我将对象的字段——字符串、整数等——绑定到布局文件。例如:
<data>
<variable
name="appState"
type="com.example.app.AppState"
/>
</data>
Run Code Online (Sandbox Code Playgroud)
和
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:title="@{appState.thing}"
/>
Run Code Online (Sandbox Code Playgroud)
这工作正常。但是,我HashMap在该 appState 对象中也有一个值。
是否可以从 this 绑定到值,即android:text="@{appState.thehashmap['thekey']"?
当前的表达式语法似乎不支持它。
但是,我想知道,有没有办法?非常感谢。
我的第一个屏幕上有一个ListID 和分数。
在详细信息屏幕中,我单击并调用一个回调,该回调会添加到分数并按List分数进行排序。
当我对列表顶部的项目执行此操作时,没有任何反应。(好的)
当我对列表底部的项目执行此操作时,导航视图会弹出后退堆栈并将我带回到第一页。(坏的)
import SwiftUI
class IdAndScoreItem {
var id: Int
var score: Int
init(id: Int, score: Int) {
self.id = id
self.score = score
}
}
@main
struct CrazyBackStackProblemApp: App {
var body: some Scene {
WindowGroup {
NavigationView {
ListView()
}
.navigationViewStyle(.stack)
}
}
}
struct ListView: View {
@State var items = (1...50).map { IdAndScoreItem(id: $0, score: 0) }
func addScoreAndSort(item: IdAndScoreItem) {
items = items
.map {
if($0.id == item.id) …Run Code Online (Sandbox Code Playgroud) 我遇到了令人讨厌的内存泄漏和崩溃,这似乎是一个平台错误.我正在尝试调试/另一个/内存问题,但我一直发现这个与EditText相关的错误,保持我的观点以及那些内容.
给定一个DialogFragment,一个带有EditText和UI Monkey的布局我可以使以下简单的应用程序崩溃,因为内存不足异常.
我已经在x86模拟器17-19上进行了测试,截至2014年3月21日的最新更新为16MB.在4.4.2上的Nexus 4上,我看到内存泄漏在五分钟内增加,增加和增加,但从未让它长到足以让它崩溃,但是在查看N4的内存转储时会显示相同的泄漏.
按下选项菜单时,Activity将打开DialogFragment:
package org.example.edittextoom;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
DialogFragment df = new Df();
df.show(getSupportFragmentManager(), "dialogtag");
return true;
}
public static class Df extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) …Run Code Online (Sandbox Code Playgroud) android memory-leaks android-edittext android-dialogfragment
我有一个带有一些可变状态列表的组件。我将其中的一个项目以及删除该项目的回调传递给另一个组件。
@Composable
fun MyApp() {
val myItems = mutableStateListOf("1", "2", "3")
LazyColumn {
items(myItems) { item ->
MyComponent(item) { toDel -> myItems.remove(toDel) }
}
}
}
Run Code Online (Sandbox Code Playgroud)
该组件delete在clickable修饰符中调用回调。
@Composable
fun MyComponent(item: String, delete: (String) -> Unit = {}) {
Column {
Box(
Modifier
.size(200.dp)
.background(MaterialTheme.colors.primary)
.clickable { delete(item) }
) {
Text(item, fontSize = 40.sp)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用。但是当我更改clickable我自己的修饰符时pointerInput(),就会出现问题。
fun Modifier.myClickable(delete: () -> Unit) =
pointerInput(Unit) {
awaitPointerEventScope { awaitFirstDown() }
delete()
} …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-jetpack-compose-list
此代码返回"我失败了"作为例外.
Try({
throw new Exception()
}) match {
case Failure(e) => println("I've failed")
case Success(s) => println("I've succeeded")
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我有不同的异常,例如:
Try({
if(someBoolean) {
throw new DifferentException()
} else {
throw new Exception()
}
}) match {
case Failure(e) => println("I've failed")
case Success(s) => println("I've succeeded")
}
Run Code Online (Sandbox Code Playgroud)
如何更改匹配语句,以便我们有不同的情况Exception和DifferentException?
我知道我可以这样做:
Try({
if(true) {
throw new DifferentException()
} else {
throw new Exception()
}
}) match {
case Failure(e) if e.isInstanceOf[DifferentException] => println("I've failed differently")
case Failure(e) if …Run Code Online (Sandbox Code Playgroud) android ×6
android-collapsingtoolbarlayout ×1
android-jetpack-compose-list ×1
android-jetpack-compose-text ×1
android-ndk ×1
go ×1
go-templates ×1
gradle ×1
memory-leaks ×1
opencv ×1
scala ×1
swift ×1
swiftui ×1