我尝试在其中一个演示中实现jquerymobile的Tap-hold功能
<!DOCTYPE html>
<html>
<head>
<title>jQuery Mobile Events</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
<script type="text/javascript">
$( function() {
$('body').bind( 'taphold', function( e ) {
alert( 'You tapped and held!' );
e.stopImmediatePropagation();
return false;
} );
$('body').bind( 'swipe', function( e ) {
alert( 'You swiped!' );
e.stopImmediatePropagation();
return false;
} );
} );
</script>
</head>
<body>
<div data-role="page" id="home">
<div data-role="header">
<h1>jQuery Mobile Events</h1>
</div>
<div data-role="content">
<p>Try:</p>
<ul>
<li>Tapping and holding</li>
<li>Swiping</li>
</ul>
</div>
</div>
</body>
</html> …Run Code Online (Sandbox Code Playgroud) 以此小部件布局为例(我的整个小部件布局的一部分)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/widget_background_dark_4x2"
android:orientation="horizontal"
android:id="@+id/widget_main"
>
Run Code Online (Sandbox Code Playgroud)
我希望能够根据用户选择更改使用的背景drawable.例如,使用远程视图,我可以通过执行以下操作来更新textview的颜色:
remoteView.setTextColor(R.id.text_view1, Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
然而,我发现我的线性布局背景很难相同.我试过这个:
remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable", ((BitmapDrawable) context.getResources().getDrawable(R.drawable.widget_background_dark_4x2)).getBitmap());
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
06-01 22:46:36.305: WARN/AppWidgetHostView(244): android.widget.RemoteViews$ActionException: view: android.widget.LinearLayout doesn't have method: setBackgroundDrawable(android.graphics.Bitmap)
Run Code Online (Sandbox Code Playgroud)
<<编辑>>也试过这个:
Bitmap bitmap = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.widget_background_light_4x2)).getBitmap();
remoteView.setBitmap(R.id.widget_main, "setBackgroundDrawable",bitmap );
Run Code Online (Sandbox Code Playgroud)
但不幸的是得到以下错误:
06-01 23:11:26.039: WARN/AppWidgetHostView(244): updateAppWidget couldn't find any view, using error view
06-01 23:11:26.039: WARN/AppWidgetHostView(244): android.widget.RemoteViews$ActionException: view: android.widget.LinearLayout doesn't have method: setBackgroundDrawable(android.graphics.Bitmap)
我正在使用包含子元素的QWidget元素,我需要的是一些方法来使这个小部件半透明,完全包括它的子元素.
我见过QWidgets的一个方法,它是QWidget :: setWindowOpacity(),但这只适用于小部件本身就是一个窗口,而在我的情况下,这个小部件是布局的一部分.
所有这一切的目标,是我能够在出现或消失时使这个小部件褪色.
感谢任何想法,希望不要制作自定义小部件,但如果没有其他选择,我无论如何都可以做到.
我是Android编程的新手,我到处都读过,我似乎无法找到任何解决方案.
基本问题是我在一个小部件中有一个TextView,我希望文本在文本长于TextView layout_width时滚动.这是我在layout_widget.xml中的代码
<TextView android:id="@+id/fact" android:layout_width="200dp"
android:text="Loading... More text to see if it spans or not and want more"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true" />
Run Code Online (Sandbox Code Playgroud)
现在我读到我必须让TextView成为焦点,我已经完成了.我还读过你需要设置属性setSelected(true),这是我努力设置的地方.在我的默认Activity(在AndroidManifest.xml中)中,我有以下代码.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.widget_layout);
findViewById(R.id.fact).setSelected(true);
setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)
下面的部分用于将Content设置为widget_layout.xml,然后将setSelected的TextView属性设置为true
setContentView(R.layout.widget_layout);
findViewById(R.id.fact).setSelected(true);
Run Code Online (Sandbox Code Playgroud)
然后我将ContentView返回给main.xml
现在我猜这是错的,这不是它应该做的方式.但我想知道是否可以做到.我还读到,如果你可以覆盖框架,你可以把你自己的属性,例如ScrollView,这也是正确的吗?我也在使用SDK Version 7.
非常感谢我收到的帮助,谢谢大家!
编辑:删除setContentView(R.layout.main); 当通过应用程序绘制启动应用程序时,文本会滚动,但小部件不会.有点让我知道一个小部件不能有一个选框??? 有没有人在一个小工具上工作?
编辑2:解决了.这就是它的完成方式
在文本视图的xml中你需要有一个标签这基本上我认为与getSeleted(true)相同;
所以代码应该如下:
<TextView android:id="@+id/fact" android:layout_width="200dp"
android:text="Loading... More text to see if it spans or not and want more"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true" …Run Code Online (Sandbox Code Playgroud) 我已经看到了很多这样的问题,我一遍又一遍地看到同样的答案.我不想为我的应用程序拥有的每种小部件都有一个服务,特别是因为我的应用程序已经拥有2个持久服务.
具体来说,如果我的一个现有服务看到数据已更改,我想更新我的小部件.在计时器上执行此操作很烦人,因为它可能是更新之间的天数,或者在一小时内可能有几天.我希望我的小部件始终显示最新信息.
Android小部件设计似乎是基于您的小部件在需要时提取信息的基础上工作,我认为有许多明智的场景,其中活动可能希望将数据推送到小部件.
阅读下面的答案,了解我是如何做到这一点的.据我所知,如果做得好,没有任何不利影响.
我遇到了一个奇怪的问题:我正在创建一个应用程序的样式,我设置:
<item name="android:spinnerStyle">@style/CustomSpinnerAppearance</item>
<item name="android:textViewStyle">@style/CustomTextViewAppearance</item>
<item name="android:buttonStyle">@style/CustomButton</item>
Run Code Online (Sandbox Code Playgroud)
现在我想设置:
<item name="android:switchStyle">@style/CustomSwitch</item>
Run Code Online (Sandbox Code Playgroud)
我得到了这个错误.
找不到与给定名称匹配的资源:attr'android:switchStyle'.
我已经在API-Lvl 14和15(ICS)中检查了attrs.xml,并且:
<attr name="switchStyle" format="reference" />
Run Code Online (Sandbox Code Playgroud)
为什么我不能为交换机小部件设置自定义样式,尽管attr位于attrs.xml中?
更重要的是:我需要做什么,为Switch小部件应用程序设置自定义样式?
我正在使用最新版本的Orchard,并创建了三篇文章的投影小部件.我希望在彼此之后直接以源语言显示它们:
<article>content</article>
<article>content</article>
<article>content</article>
Run Code Online (Sandbox Code Playgroud)
即不包含在列表中
<ul>
<li>
<article>content</article>
</li>
<li>
<article>content</article>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如何删除列表标签但保留文章?我不知道如何Model.List在ProjectionPart.cshtml中编辑,如果这甚至是正在编辑的正确文件!?
我真的很感激任何人都能给我的帮助吗?
我写了一个应该是4x2主屏幕块的小部件.这是minheight和minwidth,根据当前的"App Widget Design Guidelines"页面
android:minWidth="250dp"
android:minHeight="110dp"
Run Code Online (Sandbox Code Playgroud)
如果系统版本低于Ice Cream Sandwich,则应从dimens.xml应用填充
在我的Nexus 4(xhdpi,Jellybean 4.2.1)上,这个小部件是4x2.在模拟器(hdpi,Gingerbread 2.3.3)上,这个小部件是4x2.然而,在我的Nexus 7(hdpi,Jellybean 4.2.1)上,小部件是3x2.我不能为我的生活弄清楚为什么或如何解决它.有什么想法吗?
我试图打印出当前选中的列表框项目.例如,当我选择项目"one"时,它应该打印出"one",当我选择项目"two"时,它应该打印出"two"等.以下是我尝试过的.
from Tkinter import*
root=Tk()
sizex = 600
sizey = 400
posx = 40
posy = 20
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
itemsforlistbox=['one','two','three','four','five','six','seven']
def CurSelet(evt):
value=str((mylistbox.get(ACTIVE)))
print value
mylistbox=Listbox(root,width=60,height=10,font=('times',13))
mylistbox.bind('<<ListboxSelect>>',CurSelet)
mylistbox.place(x=32,y=90)
for items in itemsforlistbox:
mylistbox.insert(END,items)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我的问题是每当我在列表框中选择一个项目时,它实际上是打印出先前选择的项目.例如,当我在列表中选择项目"两个"时,它打印出"一个".为了使事情更清楚,请参阅以下内容
(1)我选择了"一"项,打印出"一"
(2)我选择了项目"two",它再次打印出"one"
(3)我选择了"三"项,打印出"两个"等等......
我错过了什么吗?还是我误解了get(ACTIVE)的工作方式?感谢您的帮助.
我想在Ipython Notebook 3.x或4.x(Jupyter,Python 3)中创建一个用于远程文件上传的小部件,允许用户在上传时在浏览器的文件选择器中选择多个文件.不幸的是,我对javascript方面一无所知.
我找到了blueimp的小部件,但是,我不知道如何在笔记本中使用它们.
这就是单个文件上传小部件的制作方式:
import base64
from __future__ import print_function # py 2.7 compat.
from IPython.html import widgets # Widget definitions.
from IPython.utils.traitlets import Unicode # Traitlet needed to add synced attributes to the widget.
Run Code Online (Sandbox Code Playgroud)
class FileWidget(widgets.DOMWidget):
_view_name = Unicode('FilePickerView', sync=True)
value = Unicode(sync=True)
filename = Unicode(sync=True)
def __init__(self, **kwargs):
"""Constructor"""
widgets.DOMWidget.__init__(self, **kwargs) # Call the base.
# Allow the user to register error callbacks with the following signatures:
# callback()
# callback(sender)
self.errors = …Run Code Online (Sandbox Code Playgroud) javascript widget multifile-uploader ipython-notebook jupyter
widget ×10
android ×6
attr ×1
background ×1
c++ ×1
iphone ×1
javascript ×1
jupyter ×1
layout ×1
list ×1
marquee ×1
opacity ×1
opera ×1
orchardcms ×1
projection ×1
python ×1
qt ×1
sizing ×1
styles ×1
textview ×1
tkinter ×1
transparency ×1
xml ×1