我正在学习颤振,但有些东西我在任何地方都找不到。
比如我想做一组 ChoiceChips,类似图片
但我不知道如何在这种芯片上贴上自定义标签。
我怎样才能使它成为可能?
import 'package:flutter/material.dart';
class MyThreeOptions extends StatefulWidget {
@override
_MyThreeOptionsState createState() => _MyThreeOptionsState();
}
class _MyThreeOptionsState extends State<MyThreeOptions> {
int _value = 0;
// ----What I want to appear----//
/*void v (int index){
switch (index){
case 0: Text('Phones');
break;
case 1: Text('Computers');
break;
case 2: Text('Accessories');
break;
}}*/
@override
Widget build(BuildContext context) {
return Wrap(
alignment: WrapAlignment.center,
spacing: 12.0,
children: List<Widget>.generate(
3,
(int index) {
return ChoiceChip(
pressElevation: 0.0,
selectedColor: Colors.blue, …Run Code Online (Sandbox Code Playgroud) 我需要在水平滚动视图中使用android芯片实现解决方案。当发现有许多芯片要过滤时,我发现的所有库都使用多行解决方案。但是,我希望我能排成一行并滚动浏览其容器。
我知道像Pinterest这样的应用程序已经使用了这个和概念,但是我没有办法解决它。
Chip chip = new Chip(context);
chip.setBackgroundcolor(getResources().getColor(R.color.blue));
Run Code Online (Sandbox Code Playgroud)
上面的行给出了错误:
java.lang.UnsupportedOperationException: Do not set the background resource; Chip manages its own background drawable.
Run Code Online (Sandbox Code Playgroud) 有没有办法将选择芯片设置为默认选项?此外,如果只选择了一个芯片,就不能取消选中任何芯片吗?
xml android material-design android-chips material-components-android
我正在尝试Chips在水平滚动中制作一个包含 4 的 Activity ChipGroup。
此活动使用ChipGroup作为 API 调用的过滤器,并且可以有附加信息告诉用户选择了哪个芯片。
目前我正在这样做:
chipScroll.postDelayed(() -> {
chipScroll.smoothScrollBy(800, 0);
},100);
Run Code Online (Sandbox Code Playgroud)
但这对于我想要实现的目标来说是一个相当古怪的解决方案。
还有其他方法可以滚动到Chip水平滚动中的选定内容吗ChipGroup?
编辑 :
我想过尝试迭代地获取所有芯片ChipGroup并匹配其 ID。但它似乎也很hacky。spinnerAdapter.getItem(spinner.getSelectedItemPosition)我的目标是这样的
我在列底部有带芯片的列表视图。
在从列表视图开始的第一个图像中,它是圆形的,但最后它显示为矩形。
滚动列表视图芯片 1 天时溢出。(第二张图片)。
我想两边底都需要圆形,怎么实现?提前致谢。
我的代码
Container(
padding: EdgeInsets.only(
top: 16.0,
),
width: MediaQuery.of(context).size.width,
height: 100,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12.0),
color: Colors.white),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(""),
Container(
height: 35,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(12.0),
bottomRight: Radius.circular(12.0)),
color:
Theme.of(context).chipTheme.backgroundColor),
child: ListView(
scrollDirection: Axis.horizontal,
children: getChoiceChips(),
),
)
],
),
)
Run Code Online (Sandbox Code Playgroud)
芯片功能
getChoiceChips() {
List<Widget> choiceChipList = [];
List<String> choiceString = [
'1 Day',
'1 Week',
'1 Month',
'3 Months',
'1 Year'
];
for (String …Run Code Online (Sandbox Code Playgroud) 有没有办法改变芯片文本垂直填充?我深入研究了 api,看起来我们只能使用以下方法更改 startPadding 和 endPadding:
app:chipStartPadding
app:chipEndPadding
app:textStartPadding
app:textEndPadding
Run Code Online (Sandbox Code Playgroud)
那么我们该如何做诸如更改chipTopPadding 或textTopPadding 之类的事情呢?
android material-design android-chips material-components-android
在我使用 AutoCompleteEditText 和 ChipGroup 创建布局后,我试图在我的 Android 应用程序中创建一个 ChipInput,我将动态创建的 Chip 添加到其中,但在堆栈跟踪中出现以下错误:
E/ThemeUtils:视图类 com.google.android.material.chip.Chip 是一个 AppCompat 小部件,只能与 Theme.AppCompat 主题(或后代)一起使用。
此组件上的样式要求您的应用程序主题为 Theme.MaterialComponents(或其后代)。
问题是我的主题尚未设置为材质,但我仍然收到该错误,我什至尝试以编程方式将主题设置为芯片,但仍然出现该错误。
这是我以编程方式添加芯片的代码
private fun addChipToGroup(person: String, chipGroup: ChipGroup) {
val chip = Chip(applicationContext)
chip.text = person
chip.isCloseIconVisible = true
// necessary to get single selection working
chip.isClickable = true
chip.isCheckable = false
chipGroup.addView(chip as View)
chip.setOnCloseIconClickListener { chipGroup.removeView(chip as View) }
}
Run Code Online (Sandbox Code Playgroud)
应用程序在该方法的第一行崩溃
android android-theme kotlin android-chips material-components-android
我正在尝试这种方式
override fun draw(canvas: Canvas) {
super.draw(canvas)
val viewWidth = width.toFloat()
val padding = chipEndPadding
canvas.drawOval(viewWidth - padding, padding, viewWidth, padding + padding, paint)
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有出现,可能是因为chipDrawable。任何方法都可以实现这一点。此方法适用于所有其他视图,但不适用于芯片!
android android-chips material-components material-components-android
我正在使用类似的动作芯片:
<com.google.android.material.chip.Chip
android:id="@+id/copyLinkChip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/copy_link"
app:chipIcon="@drawable/content_copy_background"
app:chipIconTint="?attr/primaryText"
android:textColor="?attr/primaryText"
app:chipStrokeWidth="0.5dp"
/>
Run Code Online (Sandbox Code Playgroud)
我想让它的背景完全透明如何制作呢?
android-chips ×10
android ×8
material-components-android ×5
flutter ×2
dart ×1
kotlin ×1
listview ×1
material ×1
xml ×1