19

升级到 Android Studio 3.1 后,布局编辑器面板中没有 TimePicker。
搜索没有找到。
事实上,所有的选择器控件似乎都消失了。他们在 3.0 中就在那里。

4

3 回答 3

6

我不确定在选择菜单中的哪里可以找到它,但如果您只需要在项目中使用时间选择器,您可以选择文件Text底部的选项卡activity.xml并粘贴 TimePicker xml。

<TimePicker
android:id="@+id/simpleTimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"/>

然后你可以选择timePickerMode你想要的,如果你想要一个时钟,然后spinner用改变clock

希望这可以帮助。

于 2018-04-03T14:32:35.770 回答
2

如其他答案所述,发行说明中有关于调色板改进的评论。

https://developer.android.com/studio/releases/index.html#layout_editor

由于某些未知原因,@Widget注释无法位于项目中。 Android注解包 时间选择器类

我做了一个肮脏的把戏,是创建我自己的@Widget 注释来复制他们的代码,然后将它添加到一个继承自TimePicker的自定义类中,当然这只是如果你渴望在你的项目的 Palette 中拥有它 xD

示例:Widget.java

package com.example.ctuser1.myapplication;

import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.SOURCE)
public @interface Widget {
}

MyTimePicker.java

package com.example.ctuser1.myapplication;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TimePicker;

@Widget
public class MyTimePicker extends TimePicker {
  public MyTimePicker(Context context) {
      super(context);
  }

  public MyTimePicker(Context context, AttributeSet attrs) {
      super(context, attrs);
  }

  public MyTimePicker(Context context, AttributeSet attrs, int defStyleAttr) {
      super(context, attrs, defStyleAttr);
  }

}

结果:

设计调色板中的结果

于 2018-04-06T17:06:43.460 回答
1

Android Studio 3.1发行说明指出

布局编辑器中的调色板得到了许多改进

它还指出,有

重新组织视图和布局的类别。

因此,此版本计划对此部分进行更改。这让我推测移除选择器是有目的的。

在 Android Studio 3.1 最终版本发布之前就注意到了调色板的这种重组,并提交了一个错误。尽管分配了错误,但没有添加评论。

为此问题提交的错误之一已分配给 Google 员工。同样,无论哪种方式,这都不是官方标志。

于 2018-04-06T16:57:18.360 回答