我有一个在我的XML布局中创建的FrameView,在我的代码中,我正在尝试创建一系列新的ImageView并将它们添加为此FrameView的子项.ImageViews很小,只有大约15像素的正方形,我希望它们显示在FrameView周围的各个位置(我正在尝试实现看起来像雷达屏幕).我能够创建它们并将它们添加得很好,它们会出现在屏幕上.但是,当我尝试设置边距时,它似乎没有任何效果.无论我设置什么,所有的ImageView都显示在FrameView的左上角,而不是偏移适当的边距.下面列出了我的XML布局,以及生成子视图的代码.难道我做错了什么?如何才能使边距正确显示?或者有更好的方法来做到这一点,而不是使用边距.
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RadarBackground"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/radar_bg">
<FrameLayout
android:id="@+id/RadarFrame"
android:layout_width="320dip"
android:layout_height="320dip"
android:layout_marginTop="25dip">
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java的:
for (int i = 0; i < getData().getTargetCount(); i ++) {
int id = getData().getTargetId(i);
Log.d(T.TAG_A, "Radar: plotting target " + id);
TargetView tv = new TargetView(this, id, getData().getTargetName(id));
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(
radarCenterX + (int) (getData().calcTargetRadarX(id, radarSize) / radarScale) - (targetSizeX / 2),
radarCenterY - (int) (getData().calcTargetRadarY(id, radarSize) / radarScale) - (targetSizeY / 2),
0, …Run Code Online (Sandbox Code Playgroud) 我有一个新的CakePHP 1.3安装,它目前有一个布局.我即将添加更多,但我不想继续处理并粘贴页眉和页脚到每个布局.
起初我以为我可以使用Elements执行此操作,但它似乎不会Configure::read('var_name');在元素中渲染块.
我的另一个想法是创建一个通用的布局,并使用大量的变量来添加和删除屏幕中的部分,具体取决于他们是什么类型的用户...但是这样做是很麻烦的.
我的问题是:在获取Configure::read()输出文本的功能时,是否可以在页面中包含页眉/页脚部分?
我正试图在rails应用程序上设计我的ruby.我创建了views/layouts/posts.html.erb,它描绘了我PostsController的观点.
我想添加一个始终位于页面顶部的主栏,无论用户正在查看什么视图.我认为这就是原样views/layouts/application.html.erb.
这似乎与我一致:http: //jacqueschirag.wordpress.com/2007/08/02/rails-layout-and-nested-layout-basics/
整个Rails应用程序(所有控制器的所有视图)将使用此布局:
views/layouts/application.rhtml单个控制器中的所有视图都将使用此布局.例如,weclome_controller.rb的布局将使用此布局.请注意,'_controller'不会用于布局:
views/layouts/welcome.rhtml
我究竟做错了什么?
这就是我在我身上所拥有的 application.html.erb
<div id="top-bar">
<div id="user_nav">
<% if current_user %>
<%= link_to "My Profile", current_user %>
<%= link_to "Logout", logout_path %>
<% else %>
<%= link_to "Register", new_user_path %>
<%= link_to "Login", login_path %>
<% end %>
</div>
</div>
<%= yield %>
Run Code Online (Sandbox Code Playgroud) 我有以下标记和CSS:
<div id="contactarea">
<p class="heading">Anuncios Premium</p>
<p class="tag">Asegure que su venta se complete!</p>
</div>
#contactarea
{
min-height:150px;
border:1px solid cyan;
}
#contactarea p .heading
{
Color:Yellow;
background-color:Green;
}
#contactarea p .tag
{
min-height:150px;
border:1px solid cyan;
}
Run Code Online (Sandbox Code Playgroud)
仅联系区域正在工作,青色边框显示,但p的字体颜色不起作用.
谢谢!
我有两个共享相同空间的HTML元素 - 当一个可见时,另一个不应该是.但是,如果我只是将对方的可见性设置为"隐藏",它仍占据显示层次结构中的空间,而我希望它消失.我不想完全删除引用,因为我需要能够在这两个元素之间切换.有任何想法吗?
如果我尝试在tkinter窗口中放置画布而不使用此代码:
from tkinter import ttk
from tkinter import *
from tkinter.ttk import *
class Application(Frame):
def createWidgets(self):
self.can = Canvas(self.master, width=500, height=250)
self.can.grid(row=2, column=1)
self.can.create_line(0,0,500,200)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()
Run Code Online (Sandbox Code Playgroud)
永远不会创建窗口.我发现添加一个按钮来创建画布有效:
from tkinter import ttk
from tkinter import *
from tkinter.ttk import *
class Application(Frame):
def makecanvas(self):
self.grid_forget()
self.can = Canvas(self.master, width=500, height=250)
self.can.grid(row=2, column=1)
self.can.create_line(0,0,500,200)
def createWidgets(self):
self.inst = Button(self)
self.inst["text"] = "GO!"
self.inst["command"] = self.makecanvas
self.inst.grid(row=3, column=1, pady=15, …Run Code Online (Sandbox Code Playgroud) 我想知道行高属性样式在布局和设计方面是否可以安全使用?
我有一个问题,在IE6和IE7中文本行之间的空间较小,但在所有其他主流浏览器中工作正常.
所以我添加了line-height:20px;,现在它在IE6和7中看起来也不错,但有趣的是,在Chrome或Firefox,Opera或Safari中,行高没有变化!
有谁知道为什么它没有改变?
这是代码:
<font color="#000000" face="Tahoma, Geneva, sans-serif" style="font-size:13px; font-weight:bold; line-height:20px;">
Run Code Online (Sandbox Code Playgroud)
谢谢
我添加了@sort_by属性到我的控制器,并初始化它的值如下:
class ProductsController < ApplicationController
def initialize
@sort_by = :shop_brand
end
...
end
Run Code Online (Sandbox Code Playgroud)
这导致不使用默认应用程序布局.
为什么?
将属性添加到控制器并初始化它的正确方法是什么?
使用Opera 11和IE 9,似乎这两个浏览器没有正确地归属CSS文本修饰样式.这在Chrome,FireFox和Safari中100%有效.有没有人建议如何解决这个问题?
错误的影响:

正确的效果:

这是CSS:
#main_title {
font-size: 18px;
color: #000;
font-weight: bold;
}
#main_title a {
color: #000;
}
#main_title_accent {
border: 1px solid #000;
background: #ff9935;
text-decoration: none;
font-size: 20px;
padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)
这是HTML:
<div id="main_title">
<a href="home">Text <span id="main_title_accent">Goes</span> Here</a>
</div>
Run Code Online (Sandbox Code Playgroud) 我试图在用户登录时将布局设置为"私有".如果我可以执行以下操作,那将是完美的:
layout 'private' if current_user
Run Code Online (Sandbox Code Playgroud)
除了它给出了这个错误:
undefined local variable or method `current_user' for ApplicationController:Class
Run Code Online (Sandbox Code Playgroud)
我也尝试在应用程序控制器中执行此操作:
before_filter :pick_the_layout
def pick_the_layout
if current_user
render :layout => "private"
else
render :layout => "public"
end
end
Run Code Online (Sandbox Code Playgroud)
这也没有运气,这是有道理的.谁能想到更好的方法来做到这一点?