问题描述
我是 Xamarin 的新手,我看到像这里的教程: ://docs.microsoft.com/en-us/xamarin/android/get-started/hello-android/hello-android-quickstart?tabs=vswin
并且 axml 设计器应该将控件“对齐”到您列出的其他控件的边框,但我的不是这样工作的。 它只是将它们全部堆在一起。 任何线索如何解决这个问题? 我已经搜索了一段时间,但似乎没有其他人遇到此问题。
例如,它们都只是放置在窗格的左上角,即使“正确”放置在另一个控件的底部,它们也只是对齐到左上角。
编辑:共享 XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px"
tools:gridSpec="1|8|#0093eeff|K:#ee8700ff:16,l:72,l:16,r|S:#83ee00ff:16,0,l:16,56,l:16,0,r">
<TextView
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1"
android:layout_toLeftOf="@id/textView1"
android:layout_toRightOf="@id/editText1" />
<TextView
android:text="Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/PhoneNumberText"
android:id="@+id/textView2" />
<Button
android:text="Translate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/PhoneNumberText"
android:id="@+id/TranslateButton"
android:layout_above="@id/PhoneNumberText" />
<EditText
android:layout_height="wrap_content"
android:layout_below="@id/PhoneNumberText"
android:id="@+id/PhoneNumberText"
android:layout_toLeftOf="@id/textView1"
android:layout_marginTop="0.0dp"
android:layout_marginBottom="0.0dp"
android:text="1-855-xamarin"
android:layout_width="wrap_content" />
</RelativeLayout>
1楼
Xamarin Controls 堆叠在一起
您的.axml
有几个错误。
在你的textView2
:
<TextView
...
android:id="@+id/textView1"
android:layout_toLeftOf="@id/textView1"
android:layout_toRightOf="@id/editText1" />
//I didn't find where you define the id -- editText1
请注意: RelativeLayout
不能存在循环依赖
您想要实现的布局是什么?
类似于您在上面链接中发布的图片?
如果是这样,您可以将布局文件修改为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="Enter a Phoneword:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/PhoneNumberText"
android:text="1-855-XAMARIN" />
<Button
android:text="Translate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/TranslateButton" />
<TextView
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/TranslatedPhoneWord" />
</LinearLayout>
2楼
我遇到了同样的问题并解决了阅读教程中的注释:
较新版本的 Visual Studio 包含略有不同的应用模板。
Instead of activity_main.axml, the layout is in content_main.axml. The default layout will be a RelativeLayout. For the rest of the steps on this page to work you should change the <RelativeLayout> tag
添加另一个属性 android:orientation="vertical" 到 LinearLayout 开始标记。
进行这些更改解决了我的问题