我有一个工作的导航抽屉,menuItem.setChecked(true);并在菜单中使用组和标题时遇到一些问题.它没有按预期突出显示菜单项.
这是我的XML:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".ActivityMap">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_welcome"
android:icon="@drawable/abc_btn_check_to_on_mtrl_000"
android:title="Welcome" />
<item
android:id="@+id/nav_map_showmap"
android:icon="@mipmap/ic_map_black_24dp"
android:title="Show Map" />
<item
android:icon="@mipmap/ic_list_black_24dp"
android:title="Show List" />
<item android:title="Settings">
<menu>
<item
android:id="@+id/nav_database_check"
android:icon="@mipmap/ic_cloud_done_black_24dp"
android:title="Update Database" />
<item
android:id="@+id/nav_map_settings"
android:icon="@mipmap/ic_settings_black_24dp"
android:title="App Preferences" />
</menu>
</item>
<item android:title="General">
<menu>
<item
android:id="@+id/nav_general_about"
android:icon="@mipmap/ic_info_black_24dp"
android:title="About" />
<item
android:id="@+id/nav_general_help"
android:icon="@mipmap/ic_help_black_24dp"
android:title="Help" />
<item
android:id="@+id/nav_general_report"
android:icon="@mipmap/ic_email_black_24dp"
android:title="Feedback / Report error" />
</menu>
</item>
</group>
</menu>
Run Code Online (Sandbox Code Playgroud)
如您所见,我有3个菜单项,然后是包含2个菜单项的设置组,然后是包含3个菜单项的通用组.
现在使用前3个菜单项,menuItem.setChecked(true);按预期工作,并突出显示该菜单项.但是,子集("设置"或"常规"子集)中的以下菜单项均未正确突出显示.
我读到<group android:checkableBehaviour="single">可以封装整个块,但这似乎不起作用.
有什么想法吗?干杯.
编辑 - 添加了菜单结构的屏幕截图
java android android-menu android-fragments navigation-drawer
Flutter Google Maps 允许在地图上使用标准/默认标记。您还可以以编程方式将颜色应用到此标记,以向您的应用程序添加各种颜色。
但是,我似乎无法使用相同的技术将颜色动态应用于自定义(白色)标记。与其制作 10 个不同颜色的自定义标记,我更喜欢使用纯白色的标记,并使用Hue或 颜色混合动态着色。
默认标记
bool bToggle = true;
_markers.add(Marker(
markerId: MarkerId(markerid),
position: newPos,
onTap: () {
...
},
infoWindow: InfoWindow(
...
),
icon: BitmapDescriptor.defaultMarkerWithHue(
(bToggle) ? BitmapDescriptor.hueYellow : BitmapDescriptor.hueRed
),
));
Run Code Online (Sandbox Code Playgroud)
自定义标记
_markers.add(Marker(
markerId: MarkerId(markerid),
position: newPos,
onTap: () {
...
},
infoWindow: InfoWindow(
...
),
icon: BitmapDescriptor.fromAssetImage(ImageConfiguration(devicePixelRatio: 2.5), 'assets/markers/pin-blue.png')
),
));
Run Code Online (Sandbox Code Playgroud)
非常感谢
快速提问。
是否有更智能/更时尚的方法将分钟转换为更易读的格式,只显示最重要的数字?
我正在使用 Android Studio 的 Java。
public String MinutesToHumanReadable(Long minutes) {
...
}
Run Code Online (Sandbox Code Playgroud)
IE
2 mins = "2 mins"
45 mins = "45 mins"
60 mins = ">1 hr"
85 mins = ">1 hr"
120 mins = ">2 hrs"
200 mins = ">3 hrs"
1500 mins = ">1 day"
Run Code Online (Sandbox Code Playgroud)
我的代码非常繁琐、草率,而且有些不可读。
public String MinutesToHumanReadable(long minutes) {
String sReturn = "";
if (minutes > 515600) {
sReturn = "> 1 yr";
} else if (minutes > 43200) {
sReturn = (minutes …Run Code Online (Sandbox Code Playgroud) 我正在使用 Libgdx (Java) 并尝试构建 3D 模型。目前,我可以使用已定义的方法(例如modelBuilder.createBox()或 )创建模型modelBuilder.createSphere()。但是,我想使用自定义网格(根据一些基本数学计算顶点)构建自己的球体,然后细分以增加面数。例如,从二十面体开始,然后进一步细分以增加面数。我必须手动执行此操作,因为似乎没有任何更简单的方法可以执行此操作。我想这样做是因为以后想分别针对这些人脸来为所说的人脸应用独特的颜色/纹理。
我想如果有人帮我制作一个自定义/手动立方体,我可能会解决其余的问题。
我的环境已经设置好了,我目前可以使用预定义的方法构建一个球体:
public class ManagerSphere {
//Settings
public String ASSET_TEXTURE_BOX = "data/libgdx.png";
public float SPHERE_RADIUS = 2f;
//init
private GameScreen _gameRef;
private ModelBuilder modelBuilder = new ModelBuilder();
private Texture tex;
private Material mat;
private ModelInstance boxInstance;
public AssetManager assets;
public ManagerSphere(GameScreen gameRef) {
this._gameRef = gameRef;
createSphere();
}
public void createSphere() {
this.tex = new Texture("spheretexture02.jpg");
this.mat = new Material(TextureAttribute.createDiffuse(this.tex));
Model tempSphere;
tempSphere = modelBuilder.createSphere(SPHERE_RADIUS*2, …Run Code Online (Sandbox Code Playgroud) 我在bottomSheet中有一个ListView,它是使用元素数组构建的。目前我在那里有一个项目“空”,然后.clear()在异步数据库调用后进行编辑和填充。
变量更新是正确的,我尝试使用setState((){})但 ListView 根本没有更新。我需要关闭bottomSheet,重新打开它,然后ListView 就会有正确的项目。
我是否只需要调用setState或是否需要标记 bottomSheet 构建器以进行更新?
主 ListView 部分:
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My Map'),
backgroundColor: Colors.green[700],
),
//Put in a stack widget so can layer other widgets on top of map widget
body: Stack(
children: <Widget>[
GoogleMap(
mapType: _currentMapType,
markers: _markers,
onMapCreated: _onMapCreated,
onCameraMove: _onCameraMove,
initialCameraPosition: CameraPosition(
target: _center,
zoom: 11.0,
),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Align(
alignment: Alignment.bottomCenter,
child: Row(mainAxisSize: …Run Code Online (Sandbox Code Playgroud) 我在这里画精灵的集合,当缩小,并进行放大时,一个更大的(16×16)的质地.当变焦水平达到阈值时,发生了互换使用较小的(4×4)的质感.
然而,为了使其成为平滑过渡,需要绘制精灵(位于[x,y]),其原点是精灵的中心.目前他们正在根据他们的左下角绘制.因此,当纹理交换发生时,精灵会略微跳跃,因为原点不匹配.
我已经创建了一些变量来调试并确保它们是正确的.
TextureRegion sprite = null;
boolean useHighResTexture = (_gameRef.cameraZoom < CAMERA_ZOOM_SWITCH_LO_RES);
if (useHighResTexture) {
//Zoomed in, Hi res, Use animation
sprite = animation.getKeyFrame(animationStateTime, true);
} else {
//Zoomed out, lo-res, Use static image
sprite = Assets.instance.getSmall();
}
float spriteWidth = sprite.getRegionWidth();
float spriteHeight = sprite.getRegionHeight();
float spriteOriginX = spriteWidth/2;
float spriteOriginY = spriteHeight/2;
//Draw(TEXTURE, x, y, originx, originy,
// width, height, scaleX, scaleY, rotation,
// srcX, srcY,
// srcWidth, srcHeight, boolflipX, boolflipY
//this.setCenter(spriteOriginX, spriteOriginY);
batch.draw(sprite.getTexture(), this.x, this.y, spriteOriginX, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用手机的加速度计一次在多个轴上旋转3D模型.当我这样做时,我会使用setToRotation(),但这一次只能做一个轴.
例如:
ModelInstance modelInstance = instances.first();
//ROLL
modelInstance.transform.setToRotation(Vector3.Z, phoneAccel.y*9);
//PITCH
modelInstance.transform.setToRotation(Vector3.X, phoneAccel.z*9);
Run Code Online (Sandbox Code Playgroud)
手机处于强制横向模式.我得到了我想要旋转的模型的实例.
我Vector3 phoneAccel基于Gdx.input.getAccelerometerX/Y/Z().
在上面的示例中,两行代码都能正常工作,但只能独立工作.当我尝试使用两者(一个接一个)时,第一次旋转(ROLL)被移除.我原本认为两个旋转矩阵将累积,即Z轴应用旋转,然后X轴应用旋转.
我是否需要创建自己的累积旋转矩阵,然后在最后应用它?
有什么想法吗?干杯
我花了大约5个小时来尝试使它与许多不同的代码排列一起使用,然后进行重建。我一生都无法将默认的“红色指针”标记更改为React Native Maps中的默认标记图像。
import MapView, { PROVIDER_GOOGLE } from 'react-native-maps';
...
<MapView
provider={PROVIDER_GOOGLE}
style={styles.map}
ref={ref => {this.map = ref;}}
minZoomLevel={4} // default => 0
maxZoomLevel={10} // default => 20
enableZoomControl={true}
showsUserLocation = {true}
showsMyLocationButton = {true}
zoomEnabled = {true}
initialRegion={{
latitude: 37.600425,
longitude: -122.385861,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA,
}}
>
<MapView.Marker
coordinate={marker.location}
image={require('./images/test.png')} <------ HERE
width={48}
height={48}
/>
</MapView>
Run Code Online (Sandbox Code Playgroud)
图像肯定存在于正确的文件夹中,我尝试了不同的图像格式png / gif / jpg / svg,尝试使用了{{uri:...}}和icon/image,添加和删除了width / height属性。似乎没有任何作用。我总是得到默认的红色指针。
我错过了明显的事情吗?
如果require映像不存在或类型不受支持,则项目打包程序/编译器将失败。它绝对可以看到图像,但是对此不做任何事情。在仿真器和实际设备上,结果相同。
image={require('./images/test.png')}
这条线什么也不做,好像它被某种方式忽略了一样。
google-maps-markers react-native react-native-android react-native-maps
Java(Android)中是否有一种方法可以链接字符串和函数?我的目标是根据从单独方法接收的字符串运行某个函数.
即如果myString =="building"则执行buildingmethod();
我正在考虑使用像这样的HashMap:
HashMap<String,Runnable> hashDBTableUpdateRef = new HashMap<>();
hashDBTableUpdateRef.put("house",this.housemethod());
hashDBTableUpdateRef.put("shed",this.shedmethod());
hashDBTableUpdateRef.put("barn",this.barnmethod());
Run Code Online (Sandbox Code Playgroud)
然后
String myString = getCalculatedString();
for (String s : hashDBTableUpdateRef) {
hashDBTableUpdateRed.get(s).run();
}
Run Code Online (Sandbox Code Playgroud)
我无法真正使用参数创建泛型方法,例如function anyBuilding(String buildingType)由于以下操作和自定义枚举.有什么想法吗?是runnable前进的道路?
例如:
function housemethod() {
myHouseObject.runSomething();
}
function shedmethod() {
myShedObject.runSomething();
}
function barnmethod() {
myBarnObject.runSomething();
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
java ×6
android ×5
libgdx ×3
3d ×2
dart ×2
flutter ×2
android-menu ×1
date ×1
enumeration ×1
formatting ×1
google-maps ×1
hashmap ×1
listview ×1
matrix ×1
mesh ×1
react-native ×1
runnable ×1
sprite ×1
textures ×1