Когда вы создаете xml, вы должны записать NavigationView после BaseLayout (FrameLayout, LinearLayout и т. д.)
<DrawerLayout>
<FrameLayout />
<NavigationView />
</DrawerLayout>
Вы сказали, "округляют в меньшую сторону", таким образом, я не уверен, ищете ли Вы на самом деле раунд или пол, но вот код, чтобы сделать обоих. Я думаю, что что-то вроде этого читает действительно хорошо, если Вы добавляете round_off
и floor
методы к классу Времени. Дополнительное преимущество - то, что Вы можете более легко круглый любым разделом времени.
require 'active_support/core_ext/numeric' # from gem 'activesupport'
class Time
# Time#round already exists with different meaning in Ruby 1.9
def round_off(seconds = 60)
Time.at((self.to_f / seconds).round * seconds).utc
end
def floor(seconds = 60)
Time.at((self.to_f / seconds).floor * seconds).utc
end
end
t = Time.now # => Thu Jan 15 21:26:36 -0500 2009
t.round_off(15.minutes) # => Thu Jan 15 21:30:00 -0500 2009
t.floor(15.minutes) # => Thu Jan 15 21:15:00 -0500 2009
Примечание: ActiveSupport был только необходим для симпатичного 15.minutes
аргумент. Если Вы не хотите той зависимости, используйте 15 * 60
вместо этого.
Я не очень знаком с синтаксисом рубина, но Вы можете раунд вниз к ближайшим 15 минутам с помощью по модулю. (т.е. x - (x по модулю 15)). Я предположил бы, что синтаксис будет чем-то как
t.min - ( t.min % 15)
, Это сделает Ваш набор возможных значений 0, 15, 30, и 45. Принятие 0 < = t.min < = 59.
Вы могли сделать:
Time.at(t.to_i/(15*60)*(15*60))
Так как Ruby позволяет арифметику (в секундах) на Временах, можно просто сделать это:
t = Time.new
rounded_t = t-t.sec-t.min%15*60
Ваша текущая оценка с помощью
min / 15 * 15
только усекает минуту, таким образом
15 => 15
16 => 15
..
29 => 15
30 => 30
, Который не 'округляется'.
можно приблизить округление в плохом пути с
(( min + 7.5 ) / 15).to_i * 15
Или, с помощью внутренностей:
( min.to_f / 15 ).round * 15
# this is an extension of Ryan McGeary's solution, specifically for Rails.
# Note the use of utc, which is necessary to keep Rails time zone stuff happy.
# put this in config/initializers/time_extensions
require 'rubygems'
require 'active_support'
module TimeExtensions
%w[ round floor ceil ].each do |_method|
define_method _method do |*args|
seconds = args.first || 60
Time.at((self.to_f / seconds).send(_method) * seconds).utc
end
end
end
Time.send :include, TimeExtensions