我是Xamarin的新手,我在这里看到类似的教程: https://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>
答案 0 :(得分:2)
Xamarin控件彼此堆叠
您的.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>
答案 1 :(得分:0)
我遇到了同样的问题,并决定阅读本教程中的说明:
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开头标记。
进行这些更改解决了我的问题