我创建了一个带有滚动条的Frame类(有帮助)。似乎工作得很好,但我希望按钮的大小适合框架的大小。现在,如果你看起来他们都聚集到左侧。我看了很多例子,这看起来很常见。下面是一些简单的运行代码,以便您可以看到问题。下面附有问题的图片。
谢谢。
func getAddressFromLatLon(pdblLatitude: String, pdblLongitude: String) -> String {
var addressString : String = ""
var center : CLLocationCoordinate2D = CLLocationCoordinate2D()
let lat: Double = Double("\(pdblLatitude)")!
//21.228124
let lon: Double = Double("\(pdblLongitude)")!
//72.833770
let ceo: CLGeocoder = CLGeocoder()
center.latitude = lat
center.longitude = lon
let loc: CLLocation = CLLocation(latitude:center.latitude, longitude: center.longitude)
ceo.reverseGeocodeLocation(loc, completionHandler:
{(placemarks, error) in
if (error != nil)
{
print("reverse geodcode fail: \(error!.localizedDescription)")
}
let pm = placemarks! as! [CLPlacemark]
if pm.count > 0 {
let pm = placemarks![0]
print("ADDRESS \(pm.country)---\(pm.locality)---\(pm.subLocality)---\(pm.thoroughfare)---\(pm.postalCode)---\(pm.subThoroughfare)")
if pm.subLocality != nil {
addressString = addressString + pm.subLocality! + ", "
}
if pm.thoroughfare != nil {
addressString = addressString + pm.thoroughfare! + ", "
}
if pm.locality != nil {
addressString = addressString + pm.locality! + ", "
}
if pm.country != nil {
addressString = addressString + pm.country! + ", "
}
if pm.postalCode != nil {
addressString = addressString + pm.postalCode! + " "
}
}
})
return addressString
}
答案 0 :(得分:1)
实际上,您的按钮 正在填充框架。当您为不同的元素提供背景颜色时,您可以看到这一点。我把你的外框设为红色,画布为绿色,框架上的按钮为蓝色:
你可以看到它实际上是内部框架没有填满画布,而不是你的按钮没有填满画面。
要使框架填充画布,如this question的答案中所述,您可以在画布try {
AssetManager assetManager = getAssets();
InputStream ims = assetManager.open("file.txt");
Gson gson = new Gson();
Reader reader = new InputStreamReader(ims);
GsonParse gsonObj = gson.fromJson(reader, Response.class);
}
}catch(IOException e) {
e.printStackTrace();
}
事件上进行绑定,以便在画布更大时将框架拉伸到画布大小比按钮的最小尺寸。要做到这一点,你必须在画布上保存放置框架的id:
<Configure>
为了确保在没有必要时没有水平滚动条,您可能希望稍微减小帧的宽度(self.canvas_frame = self.canvas.create_window(0, 0, window=self.frame, anchor=N+W)
self.canvas.bind('<Configure>', self.canvas_changed)
def canvas_changed(self, event):
if self.frame.winfo_reqwidth() < self.canvas.winfo_width():
self.canvas.itemconfigure(self.canvas_frame, width=self.canvas.winfo_width())
)。