MinWidth
How do I use Min Width
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
File name: ChatGui.cs
Copy
103 public void OnGUI()
104 {
105 if (!this.IsVisible)
106 {
107 return;
108 }
109
110 GUI.skin.label.wordWrap = true;
111 //GUI.skin.button.richText = true; // this allows toolbar buttons to have bold/colored text. nice to indicate new msgs
112 //GUILayout.Button("lala"); // as richText, html tags could be in text
113
114
115 if (Event.current.type == EventType.KeyDown && (Event.current.keyCode == KeyCode.KeypadEnter || Event.current.keyCode == KeyCode.Return))
116 {
117 if ("ChatInput".Equals(GUI.GetNameOfFocusedControl()))
118 {
119 // focus on input -> submit it
120 GuiSendsMsg();
121 return; // showing the now modified list would result in an error. to avoid this, we just skip this single frame
122 }
123 else
124 {
125 // assign focus to input
126 GUI.FocusControl("ChatInput");
127 }
128 }
129
130 GUI.SetNextControlName("");
131 GUILayout.BeginArea(this.GuiRect);
132
133 GUILayout.FlexibleSpace();
134
135 if (this.chatClient.State != ChatState.ConnectedToFrontEnd)
136 {
137 GUILayout.Label("Not in chat yet.");
138 }
139 else
140 {
141 List
142 int countOfPublicChannels = channels.Count;
143 channels.AddRange(this.chatClient.PrivateChannels.Keys);
144
145 if (channels.Count > 0)
146 {
147 int previouslySelectedChannelIndex = this.selectedChannelIndex;
148 int channelIndex = channels.IndexOf(this.selectedChannelName);
149 this.selectedChannelIndex = (channelIndex >= 0) ? channelIndex : 0;
150
151 this.selectedChannelIndex = GUILayout.Toolbar(this.selectedChannelIndex, channels.ToArray(), GUILayout.ExpandWidth(false));
152 this.scrollPos = GUILayout.BeginScrollView(this.scrollPos);
153
154 this.doingPrivateChat = (this.selectedChannelIndex >= countOfPublicChannels);
155 this.selectedChannelName = channels[this.selectedChannelIndex];
156
157 if (this.selectedChannelIndex != previouslySelectedChannelIndex)
158 {
159 // changed channel -> scroll down, if private: pre-fill "to" field with target user's name
160 this.scrollPos.y = float.MaxValue;
161 if (this.doingPrivateChat)
162 {
163 string[] pieces = this.selectedChannelName.Split(new char[] {':'}, 3);
164 this.userIdInput = pieces[1];
165 }
166 }
167
168 GUILayout.Label(ChatGui.WelcomeText);
169
170 if (this.chatClient.TryGetChannel(selectedChannelName, this.doingPrivateChat, out this.selectedChannel))
171 {
172 for (int i = 0; i < this.selectedChannel.Messages.Count; i++)
173 {
174 string sender = this.selectedChannel.Senders[i];
175 object message = this.selectedChannel.Messages[i];
176 GUILayout.Label(string.Format("{0}: {1}", sender, message));
177 }
178 }
179
180 GUILayout.EndScrollView();
181 }
182 }
183
184
185 GUILayout.BeginHorizontal();
186 if (doingPrivateChat)
187 {
188 GUILayout.Label("to:", GUILayout.ExpandWidth(false));
189 GUI.SetNextControlName("WhisperTo");
190 this.userIdInput = GUILayout.TextField(this.userIdInput, GUILayout.MinWidth(100), GUILayout.ExpandWidth(false));
191 string focussed = GUI.GetNameOfFocusedControl();
192 if (focussed.Equals("WhisperTo"))
193 {
194 if (this.userIdInput.Equals("username"))
195 {
196 this.userIdInput = "";
197 }
198 }
199 else if (string.IsNullOrEmpty(this.userIdInput))
200 {
201 this.userIdInput = "username";
202 }
203
204 }
205 GUI.SetNextControlName("ChatInput");
206 inputLine = GUILayout.TextField(inputLine);
207 if (GUILayout.Button("Send", GUILayout.ExpandWidth(false)))
208 {
209 GuiSendsMsg();
210 }
211 GUILayout.EndHorizontal();
212 GUILayout.EndArea();
213 }
File name: FlowLayoutGroup.cs
Copy
26 public override void CalculateLayoutInputHorizontal()
27 {
28
29 base.CalculateLayoutInputHorizontal();
30
31 var minWidth = GetGreatestMinimumChildWidth() + padding.left + padding.right;
32
33 SetLayoutInputForAxis(minWidth, -1, -1, 0);
34
35 }
File name: FlowLayoutGroup.cs
Copy
262 public float GetGreatestMinimumChildWidth()
263 {
264 var max = 0f;
265
266 for (var i = 0; i < rectChildren.Count; i++) {
267 var w = LayoutUtility.GetMinWidth(rectChildren[i]);
268
269 max = Mathf.Max(w, max);
270 }
271
272 return max;
273 }
File name: ScrollSnap.cs
Copy
144 public void UpdateListItemsSize()
145 {
146 float size = 0;
147 float currentSize = 0;
148 if (direction == ScrollSnap.ScrollDirection.Horizontal)
149 {
150 size = scrollRectTransform.rect.width / itemsVisibleAtOnce;
151 currentSize = listContainerRectTransform.rect.width / itemsCount;
152 }
153 else
154 {
155 size = scrollRectTransform.rect.height / itemsVisibleAtOnce;
156 currentSize = listContainerRectTransform.rect.height / itemsCount;
157 }
158
159 itemSize = size;
160
161 if (linkScrolrectScrollSensitivity)
162 {
163 scrollRect.scrollSensitivity = itemSize;
164 }
165
166 if (autoLayoutItems && currentSize != size && itemsCount > 0)
167 {
168 if (direction == ScrollSnap.ScrollDirection.Horizontal)
169 {
170 foreach (var tr in listContainerTransform)
171 {
172 GameObject child = ((Transform)tr).gameObject;
173 if (child.activeInHierarchy)
174 {
175 var childLayout = child.GetComponent
176
177 if (childLayout == null)
178 {
179 childLayout = child.AddComponent
180 }
181
182 childLayout.minWidth = itemSize;
183 }
184 }
185 }
186 else
187 {
188 foreach (var tr in listContainerTransform)
189 {
190 GameObject child = ((Transform)tr).gameObject;
191 if (child.activeInHierarchy)
192 {
193 var childLayout = child.GetComponent
194
195 if (childLayout == null)
196 {
197 childLayout = child.AddComponent
198 }
199
200 childLayout.minHeight = itemSize;
201 }
202 }
203 }
204 }
205 }
MinWidth 138 lượt xem
Gõ tìm kiếm nhanh...