008 layout和content_for

本文介绍Rails应用中如何通过content_for方法实现布局定制,使特定视图文件能够改变基础layout的渲染内容,例如在index页面引入额外CSS样式。
If you want to change something in the layout on a per-template basis, content_for is your answer! This allows templates to specify view code that can be placed anywhere in a layout.
 
当你希望在某些模板上改变layout渲染的某个部分的话,content_for就是解决之道。它允许你在layout模板的任意地方执行特定的视图代码进行渲染。
 
首先,有一个layout文件,全局的application.rhtml:
 
<!DOCTYPE html PUBLIC...>
<html>
  <head>
           <title></title>
           <%= stylesheet_link_tag "application"%>
  </head>
  <body>
     <div id="container">
            <h1>Todo List</h1>
            <%= yield%>
     </div>
       
</html>
yield部分就是其他的譬如,index,show等等独立变现的view文件
 
 
如果现在需要index页面使用某个css文件。
 
在application.rhtml中加入:
<!DOCTYPE html PUBLIC...>
<html>
  <head>
           <title></title>
 
           <%= stylesheet_link_tag "application"%>
          <%= yield :head%>
  </head>
  <body>
     <div id="container">
            <h1>Todo List</h1>
            <%= yield%>
     </div>
       
</html>
 
在index中:
 
 
<!-- projects/index.rhtml --> 
<% content_for :head do %> 
    <%= stylesheet_link_tag 'projects' %> 
<% end %> 

<!-- layouts/application.rhtml --> 
<head> 
    <title>Todo List</title> 
    <%= stylesheet_link_tag 'application' %> 
    <%= yield :head %> 
</head>




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/131595,如需转载请自行联系原作者
Element androidx.constraintlayout.widget.ConstraintLayout is not closed android:background="#FFFFFF"> <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/ready_update" android:layout_width="1200dp" android:layout_height="wrap_content" android:layout_marginLeft="360dp" android:layout_marginTop="173dp" android:background="#FFFFFF"> <!-- 标题 --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/title" android:layout_width="600dp" android:layout_height="56dp" android:layout_marginLeft="300dp" android:layout_marginTop="40dp" android:background="#FFFFFF" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/title_information" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/map_data_update" android:textColor="#000000" android:textSize="36sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="@+id/title" app:layout_constraintTop_toTopOf="@+id/title" /> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 更新目的及内容 --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/PurposeAndContent" android:layout_width="900dp" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:layout_marginTop="100.97dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/PurposeAndContent_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="@string/update_purpose" android:textColor="#000000" android:textSize="24sp" app:layout_constraintStart_toStartOf="@+id/PurposeAndContent" app:layout_constraintTop_toTopOf="@+id/PurposeAndContent" /> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 版本信息区域 - 使用正确的数据绑定语法 --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/VersionAndTime" android:layout_width="498dp" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:layout_marginTop="190.97dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/versionandtime_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:textColor="#000000" android:textSize="24sp" app:layout_constraintStart_toStartOf="@+id/VersionAndTime" app:layout_constraintTop_toTopOf="@+id/VersionAndTime" tools:text="@string/current_version" /> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 状态提示 --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/statusPrompt" android:layout_width="340dp" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:layout_marginTop="320.97dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/statusPromptText" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="@string/please_ensure_that_the_vehicle_is_in_the_following_condition" android:textColor="#000000" android:textSize="24sp" app:layout_constraintStart_toStartOf="@+id/statusPrompt" app:layout_constraintTop_toTopOf="@+id/statusPrompt" /> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 环境提示 --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/Environmental" android:layout_width="500dp" android:layout_height="wrap_content" android:layout_marginLeft="140dp" android:layout_marginTop="369dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/EnvironmentalText" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="@string/vehicle_status" android:textColor="#000000" android:textSize="24sp" app:layout_constraintStart_toStartOf="@+id/Environmental" app:layout_constraintTop_toTopOf="@+id/Environmental" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--立即更新--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/updateNow" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="300dp" android:layout_marginTop="550dp" android:background="#B87333" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!--立即更新文言--> <TextView android:id="@+id/updateNowtext" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#B87333" android:ellipsize="end" android:gravity="center_horizontal|center_vertical" android:hint="@string/search_for_destination" android:maxLength="50" android:singleLine="false" android:text="@string/immediate_Updating" android:textColor="#FFFFFF" android:textSize="28sp" app:layout_constraintStart_toStartOf="@+id/updateNow" app:layout_constraintTop_toTopOf="@+id/updateNow" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--取消--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/quxiao" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="620dp" android:layout_marginTop="550dp" android:background="#FFFF00" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!--有数据可提示文言--> <TextView android:id="@+id/quxiaotext" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#818181" android:ellipsize="end" android:gravity="center_horizontal|center_vertical" android:hint="@string/search_for_destination" android:maxLength="50" android:singleLine="false" android:text="@string/update_cancel_text" android:textColor="#FFFFFF" android:textSize="28sp" app:layout_constraintStart_toStartOf="@+id/quxiao" app:layout_constraintTop_toTopOf="@+id/quxiao" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--进度文言--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/updateing" android:layout_width="1040dp" android:layout_height="35dp" android:layout_marginLeft="80dp" android:layout_marginTop="397dp" android:background="#FFFFFF" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!--更新中文言--> <TextView android:id="@+id/updateingtext" android:layout_width="1040dp" android:layout_height="35dp" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#FFFFFF" android:ellipsize="end" android:gravity="center_horizontal|center_vertical" android:hint="@string/search_for_destination" android:maxLength="50" android:singleLine="false" android:text="@string/updating_please_wait_a_moment" android:textColor="#000000" android:textSize="24sp" app:layout_constraintStart_toStartOf="@+id/updateing" app:layout_constraintTop_toTopOf="@+id/updateing" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--进度条容器--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/updateProgress" android:layout_width="721.78dp" android:layout_height="6dp" android:layout_marginLeft="235dp" android:layout_marginTop="368dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!-- 进度条 --> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="6dp" android:max="100" android:progress="0" android:progressBackgroundTint="#E0E0E0" android:progressTint="#B87333" app:layout_constraintStart_toStartOf="@+id/updateProgress" app:layout_constraintTop_toTopOf="@+id/updateProgress" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--进度条容器--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/updateProgressTextLayout" android:layout_width="1040dp" android:layout_height="87dp" android:layout_marginLeft="80dp" android:layout_marginTop="224.97dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!-- 进度文本 --> <TextView android:id="@+id/progressText" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingTop="8dp" android:text="0%" android:textColor="#000000" android:textSize="60sp" app:layout_constraintStart_toStartOf="@+id/updateProgressTextLayout" app:layout_constraintTop_toTopOf="@+id/updateProgressTextLayout" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--暂停--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/suspend" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="300dp" android:layout_marginTop="550dp" android:background="#B87333" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!--暂停文言--> <TextView android:id="@+id/suspendtext" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#B87333" android:ellipsize="end" android:gravity="center_horizontal|center_vertical" android:hint="@string/search_for_destination" android:maxLength="50" android:singleLine="false" android:text="@string/pause" android:textColor="#FFFFFF" android:textSize="28sp" app:layout_constraintStart_toStartOf="@+id/suspend" app:layout_constraintTop_toTopOf="@+id/suspend" /> </androidx.constraintlayout.widget.ConstraintLayout> <!--恢复更新--> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/resume" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="300dp" android:layout_marginTop="550dp" android:background="#B87333" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> <!--暂停文言--> <TextView android:id="@+id/resumetext" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" android:background="#B87333" android:ellipsize="end" android:gravity="center_horizontal|center_vertical" android:hint="@string/search_for_destination" android:maxLength="50" android:singleLine="false" android:text="@string/immediate_Updating" android:textColor="#FFFFFF" android:textSize="28sp" app:layout_constraintStart_toStartOf="@+id/resume" app:layout_constraintTop_toTopOf="@+id/resume" /> </androidx.constraintlayout.widget.ConstraintLayout> <!-- <!– 版本信息布局(包含当前版本目标版本) –>--> <!-- <androidx.constraintlayout.widget.ConstraintLayout--> <!-- android:id="@+id/VersionInfoContainer"--> <!-- android:layout_width="498dp"--> <!-- android:layout_height="wrap_content"--> <!-- android:layout_marginLeft="80dp"--> <!-- android:layout_marginTop="190.97dp"--> <!-- app:layout_constraintLeft_toLeftOf="parent"--> <!-- app:layout_constraintTop_toTopOf="parent">--> <!-- <TextView--> <!-- android:id="@+id/current_version_text"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="wrap_content"--> <!-- android:padding="16dp"--> <!-- android:textColor="#000000"--> <!-- android:textSize="24sp"--> <!-- android:lineSpacingMultiplier="1.2"--> <!-- app:layout_constraintStart_toStartOf="parent"--> <!-- app:layout_constraintTop_toTopOf="parent"/>--> <!-- <TextView--> <!-- android:id="@+id/target_version_text"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="wrap_content"--> <!-- android:padding="16dp"--> <!-- android:textColor="#000000"--> <!-- android:textSize="24sp"--> <!-- android:lineSpacingMultiplier="1.2"--> <!-- android:layout_marginTop="8dp"--> <!-- app:layout_constraintStart_toStartOf="parent"--> <!-- app:layout_constraintTop_toBottomOf="@id/current_version_text"/>--> <!-- </androidx.constraintlayout.widget.ConstraintLayout>--> <!-- <!– 结束界面 –>--> <!-- <androidx.constraintlayout.widget.ConstraintLayout--> <!-- android:id="@+id/updateEnd"--> <!-- android:layout_width="1040dp"--> <!-- android:layout_height="87dp"--> <!-- android:layout_marginLeft="80dp"--> <!-- android:layout_marginTop="204.97dp"--> <!-- app:layout_constraintLeft_toLeftOf="parent"--> <!-- app:layout_constraintTop_toTopOf="parent">--> <!-- <TextView--> <!-- android:id="@+id/updateEndText"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="wrap_content"--> <!-- android:gravity="center_horizontal|center_vertical"--> <!-- android:padding="16dp"--> <!-- android:textColor="#000000"--> <!-- android:textSize="40sp"--> <!-- app:layout_constraintStart_toStartOf="@+id/updateEnd"--> <!-- app:layout_constraintTop_toTopOf="@+id/updateEnd"--> <!-- android:layout_marginTop="32dp"--> <!-- tools:text="@string/data_update_completed" />--> <!-- </androidx.constraintlayout.widget.ConstraintLayout>--> <!-- <!–IKONW–>--> <!-- <androidx.constraintlayout.widget.ConstraintLayout--> <!-- android:id="@+id/close"--> <!-- android:layout_width="280dp"--> <!-- android:layout_height="64dp"--> <!-- android:layout_marginLeft="460dp"--> <!-- android:layout_marginTop="550dp"--> <!-- android:background="#FFFF00"--> <!-- app:layout_constraintLeft_toLeftOf="parent"--> <!-- app:layout_constraintTop_toTopOf="parent">--> <!-- <!–有数据可提示文言–>--> <!-- <TextView--> <!-- android:id="@+id/closetext"--> <!-- android:layout_width="280dp"--> <!-- android:layout_height="64dp"--> <!-- android:layout_marginLeft="0dp"--> <!-- android:layout_marginTop="0dp"--> <!-- android:background="#818181"--> <!-- android:ellipsize="end"--> <!-- android:gravity="center_horizontal|center_vertical"--> <!-- android:hint="@string/search_for_destination"--> <!-- android:maxLength="50"--> <!-- android:singleLine="false"--> <!-- android:text="@string/update_konwed_text"--> <!-- android:textColor="#FFFFFF"--> <!-- android:textSize="28sp"--> <!-- app:layout_constraintStart_toStartOf="@+id/close"--> <!-- app:layout_constraintTop_toTopOf="@+id/close" />--> <!-- </androidx.constraintlayout.widget.ConstraintLayout>--> <!-- </androidx.constraintlayout.widget.ConstraintLayout>--> <!-- 版本信息容器(优化后的布局) --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/VersionInfoContainer" android:layout_width="498dp" android:layout_height="wrap_content" android:layout_marginStart="80dp" android:layout_marginTop="80dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/current_version_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="12dp" android:textColor="#333333" android:textSize="22sp" android:fontFamily="sans-serif-medium" android:lineSpacingExtra="4dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="当前版本:V2.1.0"/> <TextView android:id="@+id/target_version_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="12dp" android:textColor="#0066CC" android:textSize="22sp" android:fontFamily="sans-serif-medium" android:drawablePadding="8dp" android:layout_marginTop="4dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/current_version_text" tools:text="目标版本:V2.2.0"/> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 结束界面(调整位置避免重叠) --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/updateEnd" android:layout_width="1040dp" android:layout_height="wrap_content" android:layout_marginStart="80dp" android:layout_marginTop="24dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/VersionInfoContainer"> <TextView android:id="@+id/updateEndText" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="24dp" android:textColor="#000000" android:textSize="36sp" android:fontFamily="sans-serif-light" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="数据更新完成"/> </androidx.constraintlayout.widget.ConstraintLayout> <!-- 确认按钮(优化样式位置) --> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/close" android:layout_width="280dp" android:layout_height="64dp" android:layout_marginBottom="40dp" android:background="#FFFF00" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <TextView android:id="@+id/closetext" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:textColor="#FFFFFF" android:textSize="24sp" android:fontFamily="sans-serif-medium" android:text="我知道了" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout> </layout> 最小化修改方案解决bug
最新发布
09-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值