您好我正在尝试将我的自定义视图类放在我的主要相对布局中。
relativelayout layout_torightof在xml布局中不起作用,导致其他视图在我的自定义视图类上绘制。这是我的代码。
public class LeftNavBarUI extends RelativeLayout implements OnClickListener {
TextView facebook, twitter;
private static Context mContext;
public LeftNavBarUI(Context context, AttributeSet attrs) {
super(context);
mContext = context;
LayoutInflater li = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
li.inflate(R.layout.leftbar, this);
facebook = (TextView) findViewById(R.id.facebook);
twitter = (TextView) findViewById(R.id.twitter);
facebook.setOnClickListener(this);
twitter.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext, AlbumActivity.class);
switch(v.getId()){
case R.id.facebook:
{
intent.putExtra(AppConstants.PROVIDER_NAME, "facebook");
mContext.startActivity(intent);
break;
}
case R.id.twitter: /** AlerDialog when click on Exit */
{
intent.putExtra(AppConstants.PROVIDER_NAME, "twitter");
mContext.startActivity(intent);
break;
}
}
}
}
<org.labs.lifeviewmobile.ui.LeftNavBarUI
android:id="@+id/leftbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/title"
style="@style/ActionBarView_TabText"
android:layout_width="fill_parent"
android:layout_height="30dip"
android:textStyle="bold"
android:textSize="13sp"
android:background="@drawable/bar_gradient"
android:layout_toRightOf="@+id/leftbar"
android:paddingLeft="7dip"
android:paddingBottom="5dip"
android:paddingTop="5dip" />
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:animateLayoutChanges="true"
android:clipChildren="true"
android:gravity="top"
android:layout_toRightOf="@+id/leftbar"
android:listSelector="@drawable/image_background"
android:numColumns="4"
android:padding="10dip"
android:paddingTop="10dp"
android:scrollbarFadeDuration="0"
android:scrollbarStyle="outsideOverlay"
android:visibility="gone"
android:scrollbars="vertical" />
<TextView
android:id="@+id/blank_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/leftbar"
android:layout_centerVertical="true"
android:textStyle="bold"
android:textSize="13sp"
android:textColor="#ffffff"
android:paddingLeft="125dp"
/>
<ProgressBar
android:id="@+id/pbar"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_centerInParent="true" />
答案 0 :(得分:0)
问题在于这一行
机器人:layout_toRightOf = “@ + ID / leftbar”
应该是
机器人:layout_toRightOf = “@ ID / leftbar”
答案 1 :(得分:0)
您忘记将AttributeSet传递给父级,将构造函数更改为:
public LeftNavBarUI(Context context, AttributeSet attrs) {
super(context, attrs);
// rest of your constructor code
}
属性是您在xml中设置的属性,您需要将这些属性传递给您的父级,否则它们将不适用。